• asp.net中,<%#%>,<%=%>和<%%>各自是什么意思,有什么差别


    在asp.net中经常出现包括这样的形式<%%>的html代码,总的来说包括以下这样几种格式:
    一.  <%%>
    这样的格式实际上就是和asp的使用方法一样的,仅仅是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支持的语言。
    特别注意:server控件中不能有<%%>语法
    (这里用C#代码)
      <%
            int a = 2;
            int b = 3;
            int c = a + b;
            Response.Write(c);
        %>二. <%#%>
    假设是这样的格式的话那就是asp.net下特有的,它是控件数据绑定的语法,且必需要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法,在这样的情况下无论是server控件还是client控件都会绑定)
    特别注意:仅仅有server控件才干用<%#%>语法(不准确的)
    当整个页面调用this.DataBinder()方法时,无论是server控件还是client控件都会绑定
    <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();              
                }
            }
    当this.TextBox1.DataBind()  执行显示出来的效果(无法插入图片自己測试)
    this.DataBind() 执行显示出来的效果(无法插入图片自己測试)
    三.  <%=%>
    这样的形式实际上是由<%%>扩展而来的.等价于:Response.Write(<%%>)这样的形式(不标准,但能看明确),它事实上也能够看成是一种绑定.
    aspx代码:   <label id="label1"><%=DisplayStr()%></label><br />
      <label id="label2" runat="server"><%=DisplayStr()%></label>aspx.cs代码:  public string  DisplayStr()//注意这里必需要有返回值,否则将会发生执行时错误
            {
                return "bbbb";
            }
    四.<%$%>
    这样的形式主要用于对web.config文件的键值对进行绑定:通经常使用于连接数据库的字符串
    特别注意:1.绑定的仅仅能是server控件 
             2.仅仅能绑定到server控件的某个属性上。
     <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中的文件:使用client的控件  <input type="text" value="<%$ConnectionStrings:pubs%>"/>或者:不绑定到server控件的某个属性上 <asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>
    执行都会出现同样的错误
    最后注意一点: 
    <%#%>仅仅针对的是server控件的数据绑定,因此不能同<%=%>和<%%>混合使用
    补充:
    针对:<%=%>形式:
    第二种情况:
    aspx代码:           <input type="text" id="a"  value=<%=DisplayStr()%> />
              <input id="Text1" type="text"  runat="server" value=<%=DisplayStr()%> />aspx.cs代码:
     public string  DisplayStr()//注意这里必需要有返回值,否则将会发生执行时错误
            {
                return "bbbb";
            }假设是这样的情况的话,就出现执行时错误。最后对这样的<%=%>使用方法强调一句:尽量对client控件用这样的形式,毕竟它是asp经常使用语法,不会出现故障。
    可是对于asp.net的server控件就可能不能全然适合的。

  • 相关阅读:
    python—Celery异步分布式
    python 安装虚拟环境步骤
    同源策略:
    git 的用法和命令
    一分钟搞定AlloyTouch图片轮播
    JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
    CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化
    移动前端UI选择
    你必须收藏的Github技巧
    HTML5 学习笔记(二)——HTML5新增属性与表单元素
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4252718.html
Copyright © 2020-2023  润新知