asp.net中的<% %>、<%= %>、<%# %>、<%$ %>、<%: %>、<%@%>的使用
文章目录
一、<% %>
该种标记绑定的是后台代码,简易理解就是,当你在.aspx页面下想加入C#代码,你这时候就可以用到<% %>写到.asp net 项目的前台页面中,代码示例如下:
<from id="from1" runat="server">
<div>
<% Response.Write("hello,world"); %>
</div>
<div>
<% var index=0; %>
<% foreach (var i=0;i<10;i++){
Response.Write(index++);
}%>
</div>
</from>
二、<%= %>
这是用来从后台页面传值到前台页面所使用的(需求值:后台–>前台),用来绑定后台的变量或方法且有返回值的,但服务器端的变量名或方法的访问修饰符必须为protected或public,可以理解为假如需要在前台调用后台变量或参数,就可以使用改标记。
//前台代码
<from id="from1" runat="server">
<div>
<%=id %>
</div>
</from>
//后台代码
public string id;
protected void Page_Load(object sender, EventArgs e)
{
id= "PCX";
}
三、<%# %>
该标记用于数据绑定,在绑定控件 DataBind() 方法执行时被执行。
DataBind():Page.DataBind()或 “控件id.DataBindo” 方法将数据绑定到数据源上,可以在Page_Load事件下调用DataBind()。
//前台代码
<from id="from1" runat="server">
<div>
<asp:Repeater runat="server" ID="rpt1" OnItemCommand="rpt1_OIC">
<HeaderTemplate>
<table id="table1">
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("key")%></td>
//如果是数据表,直接用<%#Eval("column_name")%>---column_name为字段名
<td><%#Eval("value")></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</from>
//后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindData();
}
private void BindData()
{
var data=new Dictionary<string,string>{{"id":1},{"name":"pcx"}};
rpt1.DataSource = data;
rpt1.DataBind();
}
四、<%: %>
<%: %>等同于<%= %>,是ASP.NET4.0中新加入的绑定方式,功能区别其实就是对绑定的值进行编码,简化代码,更具可读性。
//<%= %>
<%= Server.HtmlEncode("<b>test</b>") %>
//等同于<%: %>
<%: "<b>test</b>" %>
五、<%@%>
表示引用包,设置网页的编码方式和脚本语言等。
//包括但不限于以下例子
<%@ page ... %>
<%@ language="javascript"%>
//用户控件
<%@ Register Src="" TagPrefix="" TagName="" %>
六、<%$ %>
主要用来绑定web.config里的字符串(键值对),通过<%$…%>,我们可以从配置文件(Web.Config)中取得连接字符串和应用程序设置,或从资源文件(.resx或.resource)中取得特定项的设置值。
//1、取得连接字符串
//web.config文件配置
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=WIN-SB1Q2JF6A4K;Initial Catalog=Mvc_pj;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
//-------<%$ %>-------
<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>"
SelectCommand="select * from person">
</asp:SqlDataSource>
//2、取得应用程序设置
//web.config文件配置
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
//-------<%$ %>-------
<asp:Literal ID="Literal_1" runat="server"
Text="<%$ AppSettings: UnobtrusiveJavaScriptEnabled %>">
</asp:Literal>