实训任务目标:掌握数据的绑定方式方法,实现前端页面和后台页面间数据的关联
重点:将后台定义的属性方法、变量、方法等绑定到前端
难点:绑定的写法
步骤:
1、绑定到属性方法
在后台代码定义属性方法:
public string dt {
get {
string date;
date = System.DateTime.Now.ToString();
return date;
}
}
在前端页面绑定到标签控件Text属性:Text="<%# dt %>"
或在前端页面的源代码中编写直接绑定:<%# dt %>
2、绑定到控件属性值
控件的绑定:假设页面有标签控件lblmessage,文本框控件txtbox1,文本框控件初始Text值设为1.
让标签直接显示文本框Text属性值,则源代码视图标签的Text值如下:
Text="<%# txtbox1.Text %>"
如标签显示单选列表控件RadioButtonList1选中的值:
Text="<%# RadioButtonList1.SelectedValue %>"
直接在源代码视图绑定到单选列表控件选中的值:<%# RadioButtonList1.SelectedValue %>
3、绑定到变量
定义全局公共变量str:public string str;
在页面加载事件中赋值: str = "字符串变量";
源代码视图直接绑定写法:<%#str %>或<%=str %>
源代码视图绑定到标签Text值为:Text="<%#str1 %>"
4、绑定到表达式:如标签控件lblmessage绑定到系统日期
在源代码中标签的Text值为:Text="<%# DateTime.Now %>"
或直接写绑定:<%# DateTime.Now %>
5、绑定到方法:
定义方法如下:
protected string EvenOrOdd(string strNumber)
{
int intNumber = int.Parse(strNumber);
if (intNumber % 2 == 0)
return "偶数";
else
return "奇数";
}
则源代码视图中需要用文本框输入参数,需要给文本框的Text属性赋一个整形初值,如1,文本框的AutoPostBack属性值要设置为True。然后可以在源代码视图中直接绑定:<%# EvenOrOdd(txtbox1.Text)%>
或通过标签的Text值绑定为:Text="<%# EvenOrOdd(txtbox1.Text)%>"
6、绑定到数组:
在后台代码页面添加名称空间:using System.Collections ;
在后台代码页面定义全局数组变量: public ArrayList arraylist;
在后台代码页面定义全局数组变量:public string[] strsports;
在页面第一次加载事件编写代码:
if (!Page.IsPostBack)
{
strsports = new string[4] { "音乐", "旅游", "摄影", "读书" };;
arraylist = new ArrayList();
arraylist.Add("新闻");
arraylist.Add("公告");
arraylist.Add("通知");
}
在前端页面绑定到下拉列表框控件:
<asp:DropDownList ID="DropDownList1" runat="server" DataSource ='<%#arraylist %>'>
</asp:DropDownList>
此外,数组还可以绑定到其他多值控件,如复选列表框CheckBoxList、列表框ListBox等。
7、页面绑定
完成上述任何一种方式的绑定后,需要在页面加载事件中添加页面绑定,使得控件可获得绑定值,代码如下:
Page.DataBind();