Ext.net中Combobox如何绑定数据库中的值-通用方法
今天在项目中再次碰到了问题,就是Combobox中的值如果是直接绑定很简单。简单添加项就行了。代码如下: <ext:ComboBox ID="ComBox_Sex" runat="server" FieldLabel="性别" Width="" EmptyText="请选择性别..." >
<Items>
<ext:ListItem Text="男性" Value=""/>
<ext:ListItem Text="女性" Value="" />
</Items>
</ext:ComboBox> 一、但是要从数据库中获取绑定该如何操作呢?
官方例子是用的后台数组做的,下面用 datatable来实现如下: 在页面中,首先是aspx页面的代码:
<form id="form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server"/>
<ext:Store ID="Store_SexCom" runat="server">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="SexID" Type="Int"/>
<ext:RecordField Name="SexName" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store> <ext:ComboBox ID="cboxSex" runat="server" FieldLabel="性别" Width="" EmptyText="请选择性别..." StoreID="Store_SexCom" ValueField="SexID" DisplayField="SexName">
</ext:ComboBox>
</form>
</body>
</html> 后台.cs文件代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
//首次加载时执行
DataSet ds_Com= getSex(); //返回的值是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
{
SexID =Int32.Parse( dr_Com["SexID"].ToString()), SexName = dr_Com["SexName"].ToString()
}); }
Store_SexCom.DataSource = list;
//绑定数据
Store_SexCom.DataBind();
}
} 这样,简单的数据绑定就实现了,其实还是挺简单的吧。 二、上面的方法虽然看起来挺清晰的,但用起来还是有点麻烦,那么下面就来个更简单更直观的方法吧: DataSet ds= getSex();
DataTable dt= ds.Tables[];
//获取表中性别下拉数据参数都是两个:Value传递的参数和Test显示的值
foreach (DataRow dr in dt.Rows) //遍历获取两个值
{
Ext.Net.ListItem liSex= new Ext.Net.ListItem();
//每次创建一个Ext.Net.ListItem的对象
liSex.Value = dr["SexID"].ToString();
liSex.Text = dr["SexName"].ToString();
ComBox_Sex.Items.Add(liSex);
}
} 分别遍历的把每行的值赋值给该对象的Text和Value属性。然后用Items.Add(liSex)的方法添加到List中即可。 主要思想也就是把每个dr转换成一个listItem放进到Combox里
三、解决combox中增加"全部"选项处理方式:
下拉框Combox绑定数据源,增加一个“全部”。再进行数据绑定、或者像二中进行listitem项增加方法同样适用。WarningOnDirty="false" 四、其实上面的方法已经很简单明了了,但我们还要进行再简化或者做成通用。代码如下: /// <summary>
/// 绑定下拉框列表
/// </summary>
/// <param name="userInfo">用户信息</param>
/// <param name="comboBox">下拉框</param>
/// <param name="itemCode">编码</param>
/// <param name="addAllItem">是否增加全部</param>
public static void GetItemDetails(BaseUserInfo userInfo, ComboBox comboBox, string itemCode, bool addAllItem = true)
{
DataTable dataTable = SNFService.Instance.ItemDetailsService.GetDataTableByCode(userInfo, itemCode);
Ext.Net.ListItem listItem;
//设置“全部”选项
if (addAllItem)
{
listItem = new Ext.Net.ListItem();
listItem.Value = ItemListCategory.All.ToString();
listItem.Text = AppMessage.All;
comboBox.Items.Add(listItem);
comboBox.Select(listItem);
}
//设置"下拉"数据项
foreach (DataRow dr in dataTable.Rows)
{
listItem = new Ext.Net.ListItem();
listItem.Value = dr[BaseItemDetailsEntity.FieldItemValue].ToString();
listItem.Text = dr[BaseItemDetailsEntity.FieldItemName].ToString();
comboBox.Items.Add(listItem);
}
}
Ext.net中Combobox如何绑定数据库中的值-通用方法的更多相关文章
- Ext.net中Combobox如何绑定数据库中的值
]; ]; " /> </Items> </ext:ComboBox>
- Sliverlight linq中的数组筛选数据库中的数据
首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特 ...
- MyBatis中使用实体中使用枚举,数据库中使用数值
一.简介 本文主要讲MyBatis中使用实体中使用枚举,数据库中使用数值的解决方案.正常直接使用会报错,需要添加typeHandlers在mybatis-config.xml中. 二.解决方案 如下: ...
- Python:判断文本中的用户名在数据库中是否存在,存在返回1,不存在返回0
下面是我写的python的一个小脚本,作用是:判断文本中的用户名在数据库中是否存在,存在返回1,不存在返回0.用的是MySQL数据库. 要注意的是:strip函数的使用,该函数的作用是去除字符串两端多 ...
- 解决SpringDataJpa实体类中属性顺序与数据库中生成字段顺序不一致的问题
一.在application.yml配置中添加数据库根据实体类自动创建数据库表的配置(这里数据库采用MySQL数据库) jpa: database: MYSQL show-sql: true #Hib ...
- 检验Excel中数据是否与数据库中数据重复
#region 记录Excel中的重复列 /// <summary> /// 记录Excel中的重复列 /// </summary> /// <param name=&q ...
- jQuery中设置form表单中action的值的方法
下面介绍在jQuery中设置form表单中action的值的方法. $("#myFormId").attr("action", "userinfo.s ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- c# 在datagridview中添加comboboxcolumn 绑定数据库读取显示数据
datagridview中的comboboxcolumn 从绑定的数据库中读取显示时,只需要注意一点,就是sql语句加个 CStr() 字符串转换函数即可,如下: SELECT CStr(XXX) a ...
随机推荐
- IOS网络访问详解
第一.访问网络的方式 同步请求:数据的请求过程是由主线程发起的,网络加载需要一定的时间,因此会堵塞主线程 异步请求:数据的请求在多线程中完成 同步请求无法取消,异步请求的过程中可以取消,同步请求无法监 ...
- The Info-Button Standard: Bring Meaningful Use To the Patient
http://thehealthcareblog.com/blog/2010/01/28/the-info-button-standard-bringing-meaningful-use-to-the ...
- PreferenceScreen的应用
PreferenceScreen preference是偏好.首选的意思,PreferenceScreen个人翻译成 "偏好显示",明确这个意思就好.就是说依据特点灵活的定义显示内 ...
- 将Tp-link无线路由器桥接到Dlink无线路由器上
笔者家中原有两台笔记本和两台IPad,通过一台Dlink无线路由器(型号DIR-612,以下简称Dlink)上网,Dlink以PPPOE方式连到小区宽带.一直还可以. 后来为了练习Linux,启用了一 ...
- (回溯法)和为n的所有不增正整数和式分解算法
题目: 利用递归算法输出正整数和为n的所有不增的正整数和式.例如当n=5时,不增的和式如下: 5=5 5=4+1 5=3+2 5=3+1+1 5=2+2+1 5=2+1+1+1 5=1+1+1+1+1 ...
- 【Javascript Demo】遮罩层和弹出层简单实现
最近纠结于遮罩层和弹出层的实现,终于搞定了个简单的版本.示例和代码如下,点击按钮可以看到效果: 1.示例: 2.代码: <!DOCTYPE html PUBLIC "-//W3C//D ...
- ZH奶酪:Yii PHP sum SQL查询语句
例子: $sql = 'SELECT SUM(o.price) as `sum` FROM `order` o WHERE o.customer_id ='.$profile->id; $ret ...
- 【JavaScript】实现复选框的全选、全部不选、反选
以较为简洁的程序实现复选框的全选.全部不选.反选 操作. 并且将可变的部分设置为JS的参数,以实现代码复用. 全选和全不选 第一个参数为复选框名称,第二个参数为是全选还是全部不选. function ...
- 应用程序正常初始化(0xc0000135)失败的解决方法
转自:http://blog.sina.com.cn/s/blog_64fba4e00100mzf9.html 这是由于没有安装.NET framework 所造成的,请安装.NET framewor ...
- java面试第十三天
I/O流 流的概念:程序与数据来源之间的桥梁 流的分类: 按数据方向分:输入流和输出流 输入流:InputStream/Reader 输出流:OutputStream/Writer 按数据类型分:字节 ...
WarningOnDirty="false"
四、其实上面的方法已经很简单明了了,但我们还要进行再简化或者做成通用。代码如下:
/// <summary>