【ASP.NET】关于《% %》,《%= %》,《%# %》,《%$ %》的使用

内容:<% %>,<%= %>,><%# %><%$ %>的使用:

注:本篇内容不推荐使用,仅仅建议了解。

<% %>的使用:

aspx页面中一般只能使用服务器控件,有时想要在页面中插入c#代码,就要用到<%%>。

例:

<form id="form1" runat="server">
    <div>
       <p><%Response.Write(now())%></p>
    </div>
</form>

注:直接在页面嵌入c#代码的方式其实不推荐,这样的页面难以阅读,同样难以维护,且代码块必须放到要使用的位置。


额外:ASP.NET服务器控件

实际上,服务器控件的使用就有解决这个问题的意味。有三种类型的服务器控件:

  • HTML 服务器控件 - 创建的 HTML 标签
  • Web 服务器控件 - 新的 ASP.NET 标签
  • Validation 服务器控件 - 用于输入验证

html服务器控件:

对应服务器控件的详细列举和属性:http://www.w3school.com.cn/aspnet/aspnet_refhtmlcontrols.asp

html一般默认是作为文本格式来处理的,想要让这些元素可被编程,就需要将这个html作为服务器控件来处理。

使用时,需向 HTML 元素中添加 runat="server" 属性(且位于runat="server" 属性的 <form> 标签内),同时添加 id 属性来标识,引用id可以用于操作运行时的服务器控件。

例:

<script runat="server">
Sub Page_Load
link1.HRef="http://www.baidu.com"
End Sub
</script>

<html>
<body>

<form runat="server">
<a id="link1" runat="server">Visit 访问!</a>
</form>

</body>
</html>
这里声明了一个 HtmlAnchor(控制<a>元素) 服务器控件,
之后在一个事件句柄(事件句柄是针对指定事件执行代码的子例程)中操作HtmlAnchor 控件的 HRef 属性。
Page_Load 事件是 ASP.NET 可理解的多种事件中的一种,用于页面加载。

此时的可执行代码其实已经被移除到HTML之外了。

web服务器控件:

web服务器控件是服务器可理解的特殊ASP.NET标签。

类似于 HTML 服务器控件,web服务器控件也是在服务器上创建,同样需要runat=“server”属性才会生效。

不过web服务器不需要映射到已存在的HTML元素。

例:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>

<html>
<body>

<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>

</body>
</html>
这个里面声明了一个Button 服务器控件,然后我们为 OnClick 事件创建一个事件句柄,用来改变按钮上的文本。

Validation服务器控件是用来验证用户输入的,用户没有输入将显示错误代码给用户。

每种validation控件执行一种指定类型的验证,例:

<html>
<body>

<form runat="server">
<p>Enter a number from 1 to 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Submit" runat="server" />
</p>

<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="The value must be from 1 to 100!"
runat="server" />
</p>
</form>

</body>
</html>
这个例子中声明了三个控件:文本控件TextBox,Button控件,还有一个RangeValidator 控件。
如果验证失败,将会显示失败的文本内容。

<%= %>的使用:

这其实是用来从后台往前台传值的,也就是在前台调用后台变量或者参数。

例:

//后台代码:
public partial class index : System.Web.UI.Page
{
    public String name;
    protected void Page_Load(object sender, EventArgs e)
    {
          name= "haha";
    }
}

//前台代码:
 <form id="form1" runat="server">
     <div>
    <%=name %>
     </div>
 </form>

前台用到的name值其实是后台提供的。

<%# %>的使用:

这其实是数据控件绑定显示使用的,有多种显示方式。

1、<%# Eval("查询出的字段")%> 例如:

<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1">
            <ItemTemplate>
                _id:
                <asp:Label ID="_idLabel" runat="server" Text='<%# Eval("_id") %>' />
                <br />
                _name:
                <asp:Label ID="_nameLabel" runat="server" Text='<%# Eval("_name") %>' />
                <br />
                _sex:
                <asp:Label ID="_sexLabel" runat="server" Text='<%# Eval("_sex") %>' />
                <br />
                _tel:
                <asp:Label ID="_telLabel" runat="server" Text='<%# Eval("_tel") %>' />
                <br />
            </ItemTemplate>
</asp:DataList>

2、<%#Bind("  ")%>数据源绑定控件的Formview的数据显示与绑定。

<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1">
    <EditItemTemplate>
               
                _name:
                <asp:TextBox ID="_nameTextBox" runat="server" Text='<%# Bind("_name") %>' />
                <br />
                <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="更新" />
              
    </EditItemTemplate>
    <InsertItemTemplate>

                _name:
                <asp:TextBox ID="_nameTextBox" runat="server" Text='<%# Bind("_name") %>' />
                <br />
                <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="插入" />

    </InsertItemTemplate>
    <ItemTemplate>

                _name:
                <asp:Label ID="_nameLabel" runat="server" Text='<%# Bind("_name") %>' />
                <br />

    </ItemTemplate>
</asp:FormView>

<%$ %>的使用:

这个一般是多语言转换时用到,先建立好全局资源和本地资源,并在配置文件下配置好代码,最后调用配置文件。

配置的代码
<configuration>

  <appSettings>
    <add key="connect" value="hello"/>
  </appSettings>

  <system.web>
        <compilation debug="false" targetFramework="4.0" />
  </system.web>

</configuration>
调用配置文件:
<form id="form1" runat="server">
    <div>
       <asp:Literal ID="Literal1" runat="server" Text="<%$ Resources:Default.aspx,name%>" />
       <asp:Literal ID="Literal2" runat="server" Text="<%$ Resources:Default.aspx,age%>" />
        <asp:Label ID="heh" runat="server" Text="<%$ appSettings:connect %>"></asp:Label>
    </div>
</form>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值