zoukankan      html  css  js  c++  java
  • asp.net中的<%%>形式的详细用法实例讲解

    asp.net中的代码分离模式我们肯定都不陌生,c#(或者其它语言)写的代码一般不会和设计语言html混在一起,但是有的时候也避免不了,这时就会在ui页面里用<%%>来绑定显示、绑定变量数据了,今日看到一文章专门对此进行了分析,我进行了一点修正:
    一. <%%>
    这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中用的是.net平台下支持的语言。
    特别注意:服务器控件中不能包含<%%>的语法,否则出错。
    如下,我们可以在.aspx页面里出现如下代码:
    <%
    int a = 2;
    int b = 3;
    int c = a + b;
    Response.Write(c);
    %>
    二. <%#%>
    这种格式是asp.net下特有的,它是控件数据绑定的语法,且必须要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法)
    特别注意:只有服务器控件才能用<%#%>的语法

    <div>
    Server Control:<asp:TextBox ID="TextBox1" runat="server" Text="<%#text%>"></asp:TextBox><br /><!--Server Control-->
    Client Control:<input type="text" id="textbox2" value="<%#text%>" /><!--Client Control-->
    </div>
    aspx.cs代码如下:

    protected string text;//注意这里必须申明为public或protected,否则aspx页面(子类)无法访问
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    this.text = "aaaaaaaaaaaaa";
    this.TextBox1.DataBind();//或this.DataBind();
    }
    }
    运行显示出来的效果

    三. <%=%>
    这种格式经常用到的。
    <label id="label1"><%=DisplayStr()%></label><br />
    <label id="label2" runat="server"><%=DisplayStr()%></label>
    aspx.cs代码:

    public string DisplayStr()//注意这里必须要有返回值,否则将会发生运行时错误
    {
    return "bbbb";
    }
    运行效果:

    四.<%$%>
    主要用于引用外部资源
    特别注意:1.绑定的只能是服务器控件
    2.只能绑定到服务器控件的某个属性上。
    以下以获取web.config资源来做实例:
    <asp:TextBox runat="server" ID="cc" Text="<%$ConnectionStrings:pubs%>"></asp:TextBox>
    web.config文件如下:

    <connectionStrings>
    <add name="pubs" connectionString="Server=.;database=pubs;uid=sa;pwd=" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    这样就能正常运行。
    如果修改aspx中的文件:使用客户端的控件

    <input type="text" value="<%$ConnectionStrings:pubs%>"/>
    或者:不绑定到服务器控件的某个属性上

    <asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>

    运行都会出现相同的错误:
    "分析器错误信息:不允许使用类似"<%$ConnectionStrings:pubs%>"类似的文本表达式,请改用……

     
    最后强调:
    <%#%>只针对的是服务器控件的数据绑定,因此不能同<%=%>和<%%>混合使用


     

  • 相关阅读:
    Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)
    Eclipse 创建文件快捷菜单、避免格式化时自动换行、.properties文件中文乱码、在线安装FreeMarker
    Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象
    Java Servlet(二):servlet配置及生命周期相关(jdk7+tomcat7+eclipse)
    Java Servlet(一):创建工程(jdk7+tomcat7+eclipse)
    FlashFXP5_gr坑爹的故事
    数据库备份,及清理备份计划
    Could not load file or assembly'System.Data.SQLite.dll' or one of its depedencies
    ASP.NET MVC中,怎么使用jquery/ajaxForm上传文件
    Bootstrap modal被sliverlight掩盖。
  • 原文地址:https://www.cnblogs.com/dudu837/p/1423836.html
Copyright © 2011-2022 走看看