数据绑定技术(CSJ_0808)
1 单值数据绑定:
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
Page.DataBind();
}
string Message{
get {
return "abcdefg";
}
}
int MessageCount{
get{
return Message.Length;
}
}
</script>
<asp:TextBox id="TextBox1" runat="server" Text='<%# Message %>'>
<asp:Label id="Label1" runat="server" Text='<%# MessageCount %>'>
--------------------------------------------------------------------
2 将 DataTable 绑定到 DataGrid 控件示例
<script language=C# runat=server>
void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
// 创建 DataTable 对象
DataTable dt = new DataTable();
DataRow dr;
// 创建 DataTable 中的 DataColumn 列
dt.Columns.Add(new DataColumn("ID", typeof(System.Int32)));
dt.Columns.Add(new DataColumn("随机数", typeof(System.String)));
dt.Columns.Add(new DataColumn("时间", typeof(System.DateTime)));
// 填充数据到 DataTable 中
for(int i=1; i<9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = (new Random()).Next(0, 99);
dr[2] = DateTime.Now;
dt.Rows.Add(dr);
}
// 数据绑定代码
DataGrid1.DataSource = dt;
DataGrid1.DataBind();
}
}
</script>
-----------------------------------------------------
3 将 DataSet 绑定到 DataGrid 控件
myDS.Tables.Add(dt);
DataGrid1.DataSource = myDS;
DataGrid1.DataBind();
-----------------------------------------------------
4 将DataView绑定到DataGrid
dataGrid1.DataSource = new DataView(dt);
dataGrid1.DataBind();
-----------------------------------------------------
5 将 DataReader 做为数据源绑定到 DataGrid 控件
SqlDataReader dr=myCommand.ExecuteReader();
DataGrid1.DataSource = dr;
DataGrid1.DataBind();
dr.Close();
myCommand.Connection.Close();
-----------------------------------------------------
6 如何将表中的列绑定到DropDownList控件
SqlCommand myCommand = new SqlCommand(query, new SqlConnection(ConnStr));
SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand);
DataTable dt = new DataTable();
myAdapter.Fill(dt);
// 数据绑定 DropDownList 控件
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "ProductName";
DropDownList1.DataValueField = "UnitPrice";
DropDownList1.DataBind();
Label1.Text = "UnitPrice: " + DropDownList1.SelectedValue;
----------------------------------------------------------------------------
7 如何使用DataBinder.Eval()方法进行数据绑定
<script language="C#" runat="server">
void Page_Load(Object semder, EventArgs e)
{
// 创建数据库连接字符串及SqlDataAdapter对象
string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer_pubs"];
SqlConnection myConnection = new SqlConnection(ConnStr);
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles", myConnection);
// 生成DataSet对象并填充数据
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
// 将Repeater控件进行数据绑定
MyRepeater.DataSource = ds.Tables["Titles"].DefaultView;
MyRepeater.DataBind();
}
</script>
-----------------------------------------------
<ItemTemplate>
<tr style="background-color:FFECD8">
<td>
<%# DataBinder.Eval(Container.DataItem, "title") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "title_id") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "type") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "pub_id") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
</td>
</tr>
</ItemTemplate>
----------------------------------------------------------------------------------------
8 将ArrayList绑定到ListBox控件
ArrayList values = new ArrayList();
values.Add ("北京");
values.Add ("上海");
values.Add ("广州");
values.Add ("深圳");
values.Add ("天津");
values.Add ("济南");
ListBox1.DataSource = values;
ListBox1.DataBind();
----------------------------------------------------------------------------------
void SubmitBtn_Click(Object sender, EventArgs e)
{
Label1.Text = "你的选择: ";
foreach(System.Web.UI.WebControls.ListItem item in ListBox1.Items)
{
if(item.Selected == true)
Label1.Text += item.Text;
}
}
----------------------------------------------------------------------------------------
9 将Hashtable绑定到RadioButtonList Web控件示例
// 创建 Hashtable 对象并填充数据
Hashtable hash = new Hashtable();
hash.Add("北京", "010");
hash.Add("广州", "020");
hash.Add("上海", "021");
hash.Add("天津", "022");
hash.Add("成都", "028");
hash.Add("济南", "0531");
// 进行数据绑定
RadioButtonList1.DataSource = hash;
RadioButtonList1.DataTextField = "Key";
RadioButtonList1.DataValueField = "Value";
RadioButtonList1.DataBind();
---------------------------------------------------------
void SubmitBtn_Click(object sender, System.EventArgs e)
{
Label1.Text = "区号是:" + RadioButtonList1.SelectedValue;
}
--------------------------------------------------------------------------------------------
10 将 XML 文件做为数据源绑定到控件
void Page_Load(object sender, System.EventArgs e)
{
// 创建 DataSet 对象
DataSet myDS = new DataSet();
// 将 XML 文件读入 DataSet
myDS.ReadXml(Server.MapPath("people.xml"));
// 显示 DataSet 中表的名称
Label1.Text = "表的名称是:" + myDS.Tables[0].TableName;
// 绑定到 DataGrid
DataGrid1.DataSource = myDS.Tables[0];
DataGrid1.DataBind();
}
people.xml:
<People>
<Person>
<Name>张三</Name>
<Phone>66666666</Phone>
<Address>北京市海淀区</Address>
</Person>
<Person>
<Name>李四</Name>
<Phone>88888888</Phone>
<Address>北京市丰台区</Address>
</Person>
</People>
----------------------------------------------------------------------------------------