asp.net后台前台代码相互绑定大总结

来源:互联网 发布:Java. swing论坛 编辑:程序博客网 时间:2024/05/29 17:53
 

一.把后台代码写到前台去


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=" + eval_r("ID") + ">分配监控点</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" class="box"  onclick="hiddenTree('table13'住建局安办</td>
    </tr>    
    <tr>
     <td align="left" class="text3">
      <table id="table13" style="display:none;" width="100%" border="0" cellspacing="0"

       cellpadding="0"> 
                <tr>
                 <td align="left" class="text3"><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>");