ASP.NET 引入了新的声明性数据绑定语法。这种非常灵活的语法允许开发人员不仅可以绑定到数据源,而且可以绑定到简单属性、集合、表达式甚至是从方法调用返回的结果。下表显示了新语法的一些示例。
简单属性 |
Customer: <%# custID %> |
集合 |
Orders: <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server"> |
表达式 |
Contact: <%# ( customer.First Name + " " + customer.LastName ) %> |
方法结果 |
Outstanding Balance: <%# GetBalance(custID) %> |
1. 绑定到属性
C#:
1void Page_Load(Object sender, EventArgs e)
2{
3 Page.DataBind();
4}
5
6string custID
7{
8 get {return "ALFKI";}
9}
10
11int orderCount
12{
13 get {return 11;}
14}
ASP:
1<body>
2 <h3><font face="宋体">到页属性的数据绑定</font></h3>
3 <form runat=server>
4 客户:<b><%# custID %></b><br>
5 未结的订单:<b><%# orderCount %></b>
6 </form>
7</body>
2. 绑定到集合和列表
绑定到Array List
C# :
1void Page_Load(Object Sender, EventArgs E)
2{
3 if (!Page.IsPostBack)
4 {
5 ArrayList values = new ArrayList();
6 values.Add ("IN");
7 values.Add ("KS");
8 values.Add ("MD");
9 values.Add ("MI");
10 values.Add ("OR");
11 values.Add ("TN");
12 DropDown1.DataSource = values;
13 DropDown1.DataBind();
14 }
15}
16
17void SubmitBtn_Click(Object sender, EventArgs e)
18{
19 Label1.Text = "您选择了:" + DropDown1.SelectedItem.Text;
20}
21
ASP:
1<body>
2 <h3><font face="宋体">数据绑定 DropDownList</font></h3>
3 <form runat=server>
4 <asp:DropDownList id="DropDown1" runat="server" />
5 <asp:button Text="提交" OnClick="SubmitBtn_Click" runat=server/>
6 <p>
7 <asp:Label id=Label1 font-name="宋体" font-size="10.5pt" runat="server" />
8 </form>
9</body>
10
绑定到Hash Table
C#:
1 void Page_Load(Object sender, EventArgs e) {
2 if (!Page.IsPostBack) {
3
4 Hashtable h = new Hashtable();
5 h.Add ("键 1", "值 1");
6 h.Add ("键 2", "值 2");
7 h.Add ("键 3", "值 3");
8
9 MyDataList.DataSource = h;
10 MyDataList.DataBind();
11 }
12 }
ASP:
1<body>
2
3 <h3><font face="宋体">到哈希表的数据绑定</font></h3>
4
5 <form runat=server>
6
7 <asp:DataList id="MyDataList" runat="server"
8 BorderColor="black"
9 BorderWidth="1"
10 GridLines="Both"
11 CellPadding="4"
12 CellSpacing="0"
13 >
14
15 <ItemTemplate>
16 <%# ((DictionaryEntry)Container.DataItem).Key %> :
17 <%# ((DictionaryEntry)Container.DataItem).Value %>
18 </ItemTemplate>
19
20 </asp:DataList>
21
22 </form>
23
24</body>
3. 绑定到方法或表达式
绑定时的表达式:<%# CType(DataBinder.Eval(Container.DataItem, "BoolValue"), Boolean) %>
C#:
1 void Page_Load(Object Src, EventArgs E) {
2
3 if (!Page.IsPostBack) {
4
5 ArrayList values = new ArrayList();
6
7 values.Add (0);
8 values.Add (1);
9 values.Add (2);
10 values.Add (3);
11 values.Add (4);
12 values.Add (5);
13 values.Add (6);
14
15 DataList1.DataSource = values;
16 DataList1.DataBind();
17 }
18 }
19
20 String EvenOrOdd(int number) {
21 if ((number % 2) == 0)
22 return "偶数";
23 else
24 return "奇数";
25 }
26
ASP:
1<body>
2
3 <h3><font face="宋体">到方法和表达式的数据绑定</font></h3>
4
5 <form runat=server>
6
7 <asp:DataList id="DataList1" runat="server"
8 BorderColor="black"
9 BorderWidth="1"
10 GridLines="Both"
11 CellPadding="3"
12 CellSpacing="0"
13 >
14
15 <ItemTemplate>
16 数字值:<%# Container.DataItem %>
17 偶/奇:<%# EvenOrOdd((int) Container.DataItem) %>
18 </ItemTemplate>
19
20 </asp:datalist>
21
22 </form>
23
24</body>
25
26
posted on 2008-07-13 10:29
reddyone 阅读(541)
评论(0) 编辑 收藏 引用 所属分类:
.net