[转载]Asp.net前台C#服务器端代码的使用

Asp.net一般情况下都是用codebehide用后台CS文件的方式进行C#编码, 在某些特定情况下需要在前台的HTML代码中使用C#代码进行编码,比如需要给一个前台的控件进行赋值,为了以后HTML代码复用时方便,就不想在后台再写C#代码,只好把代码写在HTML中。
下面是在HTML中嵌入服务器端C#代码的方式:


1 <%=变量或者函数%>
    例如:<input value="<%=myName%>"/>
    特点:这种代码只能写在非服务器端代码中,如果写在有runat="server"的控件中,将不起作用。


2 <%#变量或者函数%>
    例如:<asp:Button ID="butTest" runat="server" Text="<%#myButName%>" />
    特点:需要调用绑定方法,在后台页面的pageload事件中调用:Page.DataBind();

3 <script runat="server">
     string strTest = "前台页面中输出!";
     protected void Page_Load(object sender, EventArgs e)
     {
         Response.Write(strTest);
     }
  </script>
这种比较少用,如果要这么写,就直接在后台写代码可以了。

4 <% c#代码 %>
这种是最早的ASP时代的代码,现在ASP.NET依然支持,不过一般很少用。

对于第1种,比如又需要在前台绑定后台变量,又需要在后台应用对应的控件对象,则需要将该控件设置为 runat="server",这时候第一种语法不起作用,又不想用第2中方式进行绑定,则麻烦一点可以用客户端js来实现,在js中使用服务器端的变量,然后更新前台的控件即可。
    例如:
    <input id="txtPageSize" runat="server" style="width:28px; border-left:0px; border-right:0px; border-top:0px; border-bottom:1px solid #dddddd; text-align:center;"/>条
    <script type="text/javascript">
        document.getElementByIdx_x("txtPageSize").value=<%=pageBar.PageSize%>;
    </script>

posted @ 2014-05-21 00:07  晓菜鸟  阅读(1710)  评论(0)    收藏  举报