Ext.net中ComboBox如何绑定数据库中的值
作者:网络转载 发布时间:[ 2014/11/14 10:38:49 ] 推荐标签:数据库 对象 属性
后台.cs文件代码:
H_FileLR h_file = new H_FileLR();//调用远程服务及方法,进行基本的数据库操作
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
//首次加载时执行
DataSet ds_Com= h_file.SecretCom(); //返回的值是DataSet类型的数据
DataTable dt_Com = ds_Com.Tables[0]; //获取表中数据,Combobox一般的参数都是两个:Value传递的参数和Test显示的值
List<object> list = new List<object>(dt_Com.Rows.Count);
foreach (DataRow dr_Com in dt_Com.Rows) //遍历获取两个值
{
list.Add(new
{
SecretsLevelID =Int32.Parse( dr_Com["SecretsLevelID"].ToString()),
SecretsLevelName = dr_Com["SecretsLevelName"].ToString()
});
}
Store_SecretsCom.DataSource = list; //绑定数据
Store_SecretsCom.DataBind();
}
}
下面的截图是项目中的效果图,不是很好,请见谅:

这样,简单的数据绑定实现了,其实还是挺简单的吧。大家有什么好的方法和建议都记得给我留言哈。该博文为本人原创,转帖请注明出处,尊重著作权哈。
续文:
再次使用Comobox控件绑定数据库中值的时候,试着尝试了下新的方法,效果很好,与之前的方法简单了好多。下面和大家介绍下,而且能举一反三。
if(!IsPostBack)
{
DataSet ds_Com = h_file.ComoboxBind();
DataTable dt_Secret = ds_Com.Tables[0]; //获取表中密级表中数据,Combobox一般的参数都是两个:Value传递的参数和Test显示的值
foreach (DataRow dr_Secret in dt_Secret.Rows) //遍历获取两个值
{
Ext.Net.ListItem Secretslist = new Ext.Net.ListItem(); //每次创建一个Ext.Net.ListItem的对象
Secretslist.Value = dr_Secret["SecretsLevelID"].ToString();
Secretslist.Text = dr_Secret["SecretsLevelName"].ToString();
ComBox_SecretsLevel.Items.Add(Secretslist);
}
}
分别遍历的把每行的值赋值给该对象的Text和Value属性。然后用Items.Add(Secretslist)的方法添加到List中即可。
用这种方法的好处太明显了,没有了上次说的Store的创建,也不用绑定ValueField和 DisplayField,简直一举多得啊!
其实,我们在写前台的值的时候,忽略了他的实质,细心的朋友可能会巧妙的发现。其实前台的每个控件在后台都能创建出来,属性也是能在后台重新赋值改变的。
<ext:ComboBox ID="ComBox_SecretsLevel" runat="server" FieldLabel="密级" Width="250" EmptyText="请选择密级..." >
<Items>
<ext:ListItem Text="公开" Value="1"/>
<ext:ListItem Text="保密" Value="2" />
<ext:ListItem Text="绝密" Value="3" />
</Items>
</ext:ComboBox>
我们可以巧妙的发现:ComBox_SecretsLevel.Items.Add(Secretslist);是相当于给ListItem中添加每项。
这次使我更加坚定了信念,只要坚持,一定会有收获。每天哪怕进步一点点也是新的提高。

sales@spasvo.com