业务逻辑>表现层>列表控件 数据选择>手动绑定到数据源
2010-08-02 21:19
465 查看
首先是前台页面:
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CH9_DemoForm003.aspx.cs" Inherits="CH9_DemoForm003" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6 <head id="Head1" runat="server">
7 <title>示范以程序控制方式绑定列表类型控件</title>
8 <style type="text/css">
9 #form1
10 {
11 text-align: center;
12 }
13 body
14 {
15 font-family: Lucida Sans Unicode;
16 font-size: 10pt;
17 }
18 button
19 {
20 font-family: tahoma;
21 font-size: 8pt;
22 }
23 .highlight
24 {
25 display: block;
26 color: red;
27 font: bold 24px Arial;
28 margin: 10px;
29 }
30 .style1
31 {
32 width: 312px;
33 text-align: left;
34 }
35 </style>
36 </head>
37 <body>
38 <form id="form1" runat="server">
39 <div>
40 <table border="1">
41 <tr>
42 <td colspan="2">
43 Hi
44 <b><%=Request.LogonUserIdentity.Name%></b>
45 您好,您的 IP 地址是
46 <b><%=Request.UserHostAddress%></b>
47 <br />欢迎光临并请选择下列选项:
48 </td>
49 </tr>
50 <tr>
51 <td style="text-align: right">
52 请选择您的性别:
53 </td>
54 <td class="style1">
55 <asp:RadioButtonList ID="Gender_RadioButtonList" runat="server">
56 <asp:ListItem Selected="True" Value="0">女</asp:ListItem>
57 <asp:ListItem Value="1">男</asp:ListItem>
58 </asp:RadioButtonList>
59 </td>
60 </tr>
61 <tr>
62 <td style="text-align: right">
63 请问您已婚或未婚:
64 </td>
65 <td class="style1">
66 <asp:ListBox ID="Marital_ListBox" runat="server" Height="45px">
67 <asp:ListItem Selected="True" Value="0">未婚</asp:ListItem>
68 <asp:ListItem Value="1">已婚</asp:ListItem>
69 </asp:ListBox>
70 </td>
71 </tr>
72 <tr>
73 <td style="text-align: right">
74 请选择居住地:
75 </td>
76 <td class="style1">
77 <asp:DropDownList ID="Resident_DropDownList" runat="server" Height="22px"
78 Width="123px">
79 </asp:DropDownList>
80 </td>
81 </tr>
82 <tr>
83 <td style="text-align: right">
84 请选择您的职业:
85 </td>
86 <td class="style1">
87 <asp:DropDownList ID="Job_DropDownList" runat="server"
88 Height="22px" Width="278px">
89 </asp:DropDownList>
90 </td>
91 </tr>
92 <tr>
93 <td style="text-align: right">
94 请选择您的专长:
95 </td>
96 <td class="style1">
97 <asp:DropDownList ID="Speciality_DropDownList" runat="server"
98 Height="22px" Width="278px">
99 </asp:DropDownList>
100 </td>
101 </tr>
102 </table>
103 </div>
104 </form>
105 </body>
106 </html>
107
108
Job_DropDownList和Speciality_DropDownList是没有用数据源控件绑定,而是后台代码手动绑定到数据源。
后台代码:
1 using System;
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Linq;
6 using System.Web;
7 using System.Web.Security;
8 using System.Web.UI;
9 using System.Web.UI.HtmlControls;
10 using System.Web.UI.WebControls;
11 using System.Web.UI.WebControls.WebParts;
12 using System.Xml.Linq;
13 using System.Data.SqlClient;
14 using System.Collections.Generic;
15
16 public partial class CH9_DemoForm003 : System.Web.UI.Page
17 {
18 protected void Page_Load(object sender, EventArgs e)
19 {
20 if (!IsPostBack)
21 {
22 // 创建一个连接对象。
23 using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["chtNorthwind"].ConnectionString))
24 {
25
26 // 创建一个命令对象。
27 SqlCommand cmd = new SqlCommand();
28 cmd.Connection = con;
29 cmd.CommandText = "SELECT 县市代号, 县市名称 FROM 县市";
30
31 // 开启连接。
32 con.Open();
33
34 // 创建一个 SqlDataReader 对象。
35 using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult))
36 {
37 // 将 DropDownList 控件绑定至 SqlDataReader 对象。
38 this.Resident_DropDownList.DataSource = dr;
39 this.Resident_DropDownList.DataTextField = "县市名称";
40 this.Resident_DropDownList.DataValueField = "县市代号";
41 this.Resident_DropDownList.DataBind();
42 }
43
44 cmd.CommandText = "SELECT 职业类别名称, 职业类别编号 FROM 职业类别";
45 using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult))
46 {
47 // 将 DropDownList 控件绑定至 SqlDataReader 对象。
48 this.Job_DropDownList.DataSource = dr;
49 this.Job_DropDownList.DataTextField = "职业类别名称";
50 this.Job_DropDownList.DataValueField = "职业类别编号";
51 this.Job_DropDownList.DataBind();
52 }
53 }
54
55 // 创建一个泛型集合来内含 Speciality 对象。
56 List<Speciality> shoppingCart = new List<Speciality>();
57 shoppingCart.Add(new Speciality(1, "数据库设计"));
58 shoppingCart.Add(new Speciality(2, "市场分析"));
59 shoppingCart.Add(new Speciality(3, "交际"));
60 shoppingCart.Add(new Speciality(4, "决策分析"));
61
62 // 将 DropDownList 控件绑定至泛型集合。
63 Speciality_DropDownList.DataSource = shoppingCart;
64 Speciality_DropDownList.DataTextField = "Name";
65 Speciality_DropDownList.DataValueField = "Id";
66 Speciality_DropDownList.DataBind();
67
68 }
69
70 }
71 }
72
73 public class Speciality
74 {
75 private int _id;
76 public string _name;
77 public int Id
78 {
79 get { return _id; }
80 }
81
82 public string Name
83 {
84 get { return _name; }
85 }
86
87 public Speciality(int id, string name)
88 {
89 _id = id;
90 _name = name;
91 }
92 }
93
94
95
对于DropDownList 有两种后台绑定方式,一种数据库,另一种泛型集合。
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CH9_DemoForm003.aspx.cs" Inherits="CH9_DemoForm003" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6 <head id="Head1" runat="server">
7 <title>示范以程序控制方式绑定列表类型控件</title>
8 <style type="text/css">
9 #form1
10 {
11 text-align: center;
12 }
13 body
14 {
15 font-family: Lucida Sans Unicode;
16 font-size: 10pt;
17 }
18 button
19 {
20 font-family: tahoma;
21 font-size: 8pt;
22 }
23 .highlight
24 {
25 display: block;
26 color: red;
27 font: bold 24px Arial;
28 margin: 10px;
29 }
30 .style1
31 {
32 width: 312px;
33 text-align: left;
34 }
35 </style>
36 </head>
37 <body>
38 <form id="form1" runat="server">
39 <div>
40 <table border="1">
41 <tr>
42 <td colspan="2">
43 Hi
44 <b><%=Request.LogonUserIdentity.Name%></b>
45 您好,您的 IP 地址是
46 <b><%=Request.UserHostAddress%></b>
47 <br />欢迎光临并请选择下列选项:
48 </td>
49 </tr>
50 <tr>
51 <td style="text-align: right">
52 请选择您的性别:
53 </td>
54 <td class="style1">
55 <asp:RadioButtonList ID="Gender_RadioButtonList" runat="server">
56 <asp:ListItem Selected="True" Value="0">女</asp:ListItem>
57 <asp:ListItem Value="1">男</asp:ListItem>
58 </asp:RadioButtonList>
59 </td>
60 </tr>
61 <tr>
62 <td style="text-align: right">
63 请问您已婚或未婚:
64 </td>
65 <td class="style1">
66 <asp:ListBox ID="Marital_ListBox" runat="server" Height="45px">
67 <asp:ListItem Selected="True" Value="0">未婚</asp:ListItem>
68 <asp:ListItem Value="1">已婚</asp:ListItem>
69 </asp:ListBox>
70 </td>
71 </tr>
72 <tr>
73 <td style="text-align: right">
74 请选择居住地:
75 </td>
76 <td class="style1">
77 <asp:DropDownList ID="Resident_DropDownList" runat="server" Height="22px"
78 Width="123px">
79 </asp:DropDownList>
80 </td>
81 </tr>
82 <tr>
83 <td style="text-align: right">
84 请选择您的职业:
85 </td>
86 <td class="style1">
87 <asp:DropDownList ID="Job_DropDownList" runat="server"
88 Height="22px" Width="278px">
89 </asp:DropDownList>
90 </td>
91 </tr>
92 <tr>
93 <td style="text-align: right">
94 请选择您的专长:
95 </td>
96 <td class="style1">
97 <asp:DropDownList ID="Speciality_DropDownList" runat="server"
98 Height="22px" Width="278px">
99 </asp:DropDownList>
100 </td>
101 </tr>
102 </table>
103 </div>
104 </form>
105 </body>
106 </html>
107
108
Job_DropDownList和Speciality_DropDownList是没有用数据源控件绑定,而是后台代码手动绑定到数据源。
后台代码:
1 using System;
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Linq;
6 using System.Web;
7 using System.Web.Security;
8 using System.Web.UI;
9 using System.Web.UI.HtmlControls;
10 using System.Web.UI.WebControls;
11 using System.Web.UI.WebControls.WebParts;
12 using System.Xml.Linq;
13 using System.Data.SqlClient;
14 using System.Collections.Generic;
15
16 public partial class CH9_DemoForm003 : System.Web.UI.Page
17 {
18 protected void Page_Load(object sender, EventArgs e)
19 {
20 if (!IsPostBack)
21 {
22 // 创建一个连接对象。
23 using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["chtNorthwind"].ConnectionString))
24 {
25
26 // 创建一个命令对象。
27 SqlCommand cmd = new SqlCommand();
28 cmd.Connection = con;
29 cmd.CommandText = "SELECT 县市代号, 县市名称 FROM 县市";
30
31 // 开启连接。
32 con.Open();
33
34 // 创建一个 SqlDataReader 对象。
35 using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult))
36 {
37 // 将 DropDownList 控件绑定至 SqlDataReader 对象。
38 this.Resident_DropDownList.DataSource = dr;
39 this.Resident_DropDownList.DataTextField = "县市名称";
40 this.Resident_DropDownList.DataValueField = "县市代号";
41 this.Resident_DropDownList.DataBind();
42 }
43
44 cmd.CommandText = "SELECT 职业类别名称, 职业类别编号 FROM 职业类别";
45 using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult))
46 {
47 // 将 DropDownList 控件绑定至 SqlDataReader 对象。
48 this.Job_DropDownList.DataSource = dr;
49 this.Job_DropDownList.DataTextField = "职业类别名称";
50 this.Job_DropDownList.DataValueField = "职业类别编号";
51 this.Job_DropDownList.DataBind();
52 }
53 }
54
55 // 创建一个泛型集合来内含 Speciality 对象。
56 List<Speciality> shoppingCart = new List<Speciality>();
57 shoppingCart.Add(new Speciality(1, "数据库设计"));
58 shoppingCart.Add(new Speciality(2, "市场分析"));
59 shoppingCart.Add(new Speciality(3, "交际"));
60 shoppingCart.Add(new Speciality(4, "决策分析"));
61
62 // 将 DropDownList 控件绑定至泛型集合。
63 Speciality_DropDownList.DataSource = shoppingCart;
64 Speciality_DropDownList.DataTextField = "Name";
65 Speciality_DropDownList.DataValueField = "Id";
66 Speciality_DropDownList.DataBind();
67
68 }
69
70 }
71 }
72
73 public class Speciality
74 {
75 private int _id;
76 public string _name;
77 public int Id
78 {
79 get { return _id; }
80 }
81
82 public string Name
83 {
84 get { return _name; }
85 }
86
87 public Speciality(int id, string name)
88 {
89 _id = id;
90 _name = name;
91 }
92 }
93
94
95
对于DropDownList 有两种后台绑定方式,一种数据库,另一种泛型集合。
相关文章推荐
- 当DropDownList绑定数据源后 需要手动添加一行数据 如“请选择”
- 业务逻辑>数据层>ObjectDataSource>数据源分页机制
- 业务逻辑>数据层>SqlDataSource>sql的输入参数>控件参数>System.Web.UI.WebControls.GridView.SelectedValue
- DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
- ASP.NET基础教程-DataList数据列表控件-选择DataList列表中的一行显示明细信息
- 数据绑定控件GridView展示商品列表
- 如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
- Control Study -> 主表和子表数据同时在绑定控件显示(示例代码下载)
- asp.net控件开发基础(19) --------数据列表绑定控件
- 将Xml数据绑定到数据源绑定控件
- WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)
- VS2013从头开始创建Web Form--ASP.NET数据源和数据绑定控件
- WinForms 控件 > 通用概念 > 概念 > 数据绑定 > 绑定控件到在运行时被创建的数据(2011.10.18更新)
- WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)
- Mapzone平台下手动为IComboBox控件绑定数据源
- 如何让GridView控件在绑定的数据源没有数据时也显示标题
- .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
- Demo: Dictionary>> 泛型读取XML文件数据作为数据源(DataSource)绑定到DropDownList控件 定义个一个公用类
- treeview控件(动态数据绑定+整行选择)(WPF)(一)
- 数据绑定控件与业务实体的绑定总结