- ·上一篇文章:C#不允许声明函数体内的static变量原因
- ·下一篇文章:C# 数据库访问通用类 (ADO.NET)
DotNet前台代码绑定后台变量各种方法
二. <
%
# str %>
ASP.NET 引入了一种新的声明语法 <
%
# %>
。该语法是在 .aspx 页中使用数据绑定的基础,所有数据绑定表达式都必须包含在这些字符中。这里从用法和适用范围等方面与第一种绑定方式进行区分。
从出现的位置来看,除了能出现在第一种代码块出现的所有位置外,他还可以出现在服务器端控件的属性中。
从绑定的变量类型上看,他还可以配合ASP.NET的数据绑定类控件,来绑定上述的第四种“变量”类型,就是数据集合(DropDownList,DataList,DataGrid,ListBox这些是数据绑定类控件,数据集合包括ArrayList(数组),Hashtable(哈稀表,DataView(数据视图),DataReader等)。
从用法上看,在前台代码中除了在相应位置写上<
%
# %>
外,在后台代码中,还需要使用DataBind()方法。以下是实例:
前台代码:
以下为引用的内容:
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
 
 
 
<
title>
<
/title>
 
 
 
<
script type="text/javascript">
 
 
 
 
 
 
 
function fun()
{
 
 
 
 
 
 
 
 
 
 
 
var str = '<
%
# DateTime.Now %>
'
 
 
 
 
 
 
 
 
 
 
 
alert(str)
 
 
 
 
 
 
 
}
 
 
 
<
/script>
<
/head>
<
body >
 
 
 
<
form id="form1" runat="server">
 
 
 
<
div>
 
 
 
 
 
 
 
<
input type="text" value="<
%
# GetVariableStr %>
" />
<
br />
 
 
 
 
 
 
 
"<
%
# GetVariableStr %>
"
 
 
 
 
 
 
 
<
asp:Label ID="Label1" runat="server" Text="<
%
# GetVariableStr %>
">
<
/asp:Label>
 
 
 
 
 
 
 
 
 
 
 
<
%--此种方式可以绑定服务器端控件的属性--%>
 
 
 
 
 
 
 
<
asp:DropDownList ID="DropDownList1" runat="server" DataSource='<
%
# arraylist %>
'>
 
 
 
 
 
 
 
 
 
 
 
<
%-- 将集合绑定到数据绑定类控件,通过DataSource属性来实现,从而在下拉框看到集合中的内容--%>
 
 
 
 
 
 
 
<
/asp:DropDownList>
 
 
 
 
 
 
 
<
asp:DataList ID="DataList1" runat="server" DataSource='<
%
# dt %>
'>
 
 
 
 
 
 
 
 
 
 
 
<
%-- 
同上,绑定了DataTable数据集合?--%>
 
 
 
 
 
 
 
 
 
 
 
<
ItemTemplate>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
table border="1" cellpadding="0" cellspacing="0">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
asp:Label ID="Label2" runat="server" Text='<
%
# Bind("row0")%>
'>
<
/asp:Label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
%--由于绑定的数据集合具有多列,并且此数据绑定类控件支持模板,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
因此需要在模板中指定需要绑定的列以及格式--%>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
/td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
%
# Eval("row1")%>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
/td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
/tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<
/table>
 
 
 
 
 
 
 
 
 
 
 
<
/ItemTemplate>
 
 
 
 
 
 
 
<
/asp:DataList>
 
 
 
<
/div>
 
 
 
<
/form>
<
/body>
<
/html>
 
可以看出,这种方式在使用时,不但可以实现(取代)<
%=... %>
所满足的功能,还可以绑定服务器控件属性(如上面的Label1),也可以将集合类型绑定到支持的数据绑定类控件。在用法上,前台代码除了对数据绑定类控件绑定数据集合外有所差别,其他的使用上与第一种没区别。在绑定类控件的模板中,如何使用Eval、Bind、DataBinder.Eval等,不在此文讨论中,可以参考下面链接的参考文章。
后台代码:
以下为引用的内容:
public partial class WebForm2 : System.Web.UI.Page
{
 
 
 
public string GetVariableStr
 
 
 
public ArrayList arraylist
 
 
 
public DataTable dt
 
 
 
protected void Page_Load(object sender, EventArgs e)
 
 
 
{
 
 
 
 
 
 
 
if (!IsPostBack)
 
 
 
 
 
 
 
{
 
 
 
 
 
 
 
 
 
 
 
GetVariableStr = "hello world from variable"
 
 
 
 
 
 
 
 
 
DotNet前台代码绑定后台变量各种方法