閱讀659 返回首頁    go 阿裏雲 go 技術社區[雲棲]


asp.net後台前台代碼相互綁定大總結

 

一.把後台代碼寫到前台去


1 對於普通的html標簽和普通服務器控件綁定後台變量(變量一定要public

.cs

        // 加載方式
        public string loadtype;

        protected void Page_Load(object sender, EventArgs e)
        {                   

             // 檢測是否首次加載
             if (Request.QueryString["loadType"] != null)
             {
                  loadtype = Request.QueryString["loadType"].ToString();
             }
        }

 

.aspx

       <div style='display:<%=loadtype=="1"?"none":"inline"%>'>............</div>

 

先通過<%=loadtype%>標簽獲取到loadtype,再對loadtype進行判斷,這個時候<%=loadtype%>可能不變黃,沒有關係。

 

 

2.Gridviewrepeater數據綁定控件裏綁定後台變量

 

我們知道,不是那個角色都可以設置監控點的。那麼我需要在綁定的時候,判斷一下,這個人的usertpye是多少。那麼怎麼辦判斷呢?看代碼:

 

<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<a href="EditUser.aspx?userId=<%# eval_r("ID") %>">修改</a>

<a href="EditPWD.aspx?userId=<%# eval_r("ID") %>">重設密碼</a>
<%#Convert.ToUInt32(eval_r("UserType")) == 7 ?

"<a href=../Point.aspx?userID") + ">分配監控點</a>" : ""%>

 </ItemTemplate>
 </asp:TemplateField>

 

簡單吧!其實其他的控件如repeater,datalist等等,都可以效法!

  

我們再看一例:

<asp:LinkButton ID="linkbtnCloseOrOpen" runat="server" CommandName='<%#eval_r("IsClosed") %>' CommandArgument='<%#eval_r("ID") %>'>
<%#bool.Parse(eval_r("IsClosed").ToString())?"打開監控點":"關閉監控點" %>
</asp:LinkButton>

 

 

3.引申——綁定後台方法

由1,2的區別,看二者3的區別——也就是<%=%>和<%#%>綁定方法的區別,懂了吧!asp.net前台綁定後台代碼大總結

<%=Add()%>

<%#Add()%>

拿第二種舉個例子吧

在後台有這樣的方法

 

 public Test_Paper GetPaper(int id)

{

      return BLL.Test_PaperBLL.ReadTestPaperByID(id);

}

在前台這樣用
<%#GetPaper(Convert.ToInt32(eval_r("PaperNum"))).Name %>)

需要注意的是eval_r("PaperNum")獲取的是object類型,注意類型轉化。

再看例子
<%#GetChoose(eval_r("QId")).OptionA == null ? "" : "<input type='radio' name='choose"+eval_r("QId")+"'>A." + GetChoose(eval_r("QId")).OptionA + "</input>"%>


4.<%%>幹嗎用啊?

這樣用:

                       

    <%
         int countValue = id;
     %>

<div  style='display:<%=countValue==1?"none":"inline"%>'></div>

 

①<%%>中可以獲取後台中public的字段,像例子中的id

②可以聲明變量

③變量可以再前台使用

④可以再<%%>對後台的數據進行一些邏輯操作,當然,這種邏輯操作可以在後台完成,再在前台獲取後台方法,如本文的第三個大標題一樣!

 

 

再看一例

<%if (user.CompanyId==1)
{                            
 %>
    <tr>
     <td align="left"   left" >
      <table width="100%" border="0" cellspacing="0"

       cellpadding="0"> 
                <tr>
                 <td align="left" ><a href="/Manage/CheckPoints.aspx"

                   target="mainFrame">住建局監控</a></td>
             </tr>                  
      </table>
     </td>
    </tr>
<%} %>   

 

 

 

二把前台代碼寫到後台去


我們不僅可以在前台寫代碼,也可以在後台寫前台的代碼

 

比如:

     <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <%=str2.ToString()%>
      <tr>
       <td width="37%" height="30"></td>
       <td width="31%" height="30"></td>
       <td width="32%" height="30">&nbsp;</td>
      </tr>
      </table>

 

 

那麼在後台的話:

 

j += 1;
str2.Append("<tr>");
str2.Append("<td id=\"td2" + j + "\" width=\"37%\" height=\"30\" align=\"left\">");
str2.Append(j  + GetEvaluation(resultInfo.EvaluationID).Evaluation);
str2.Append("</td>");
str2.Append("<td width=\"31%\" height=\"30\">");

str2.Append("<input name=\"resultId2" + j + "\" value=\"" + resultInfo.ID + "\" type=\"hidden\">");
..............................................................................

str2.Append("</tr>");

最後更新:2017-04-02 22:16:00

  上一篇:go 在線編輯器使用,檢測到有潛在危險Request.Form值
  下一篇:go JDBC的PrepareStatement