Dropdownlist如何绑定数据库的多个字段
数据表有一个Dropdownlist,同时需要这个数据表的三个值,其中2个如下
private void BindFromSchool()
{
RGP.BLL.School bll = new RGP.BLL.School();
DataSet ds = bll.GetSchoolList("", "order by schoolOrder asc");
Dropdownlist.DataSource = ds;
Dropdownlist.DataValueField = "schooldescription";
Dropdownlist.DataTextField = "schoolName";
Dropdownlist.DataBind();
}
现在由于需要,要添加一个Dropdownlist的触发事件,要求选择一项时,将这个表的id显示在一个textbox上。
请问有没有办法,让dropdownlist获取多个字段。或者是dataset的数据绑定到数组上。
最好不要用获取schooldescription再进行一次数据库查询。
--------------------编程问答-------------------- Dropdownlist.SelectedItem ? --------------------编程问答-------------------- string strID = (Dropdownlist.SelectedItem as DataRowView).Row["id"].ToString();
看看 有 SelectedItem 这个属性么,如果没有这个肯定有其他类似的属性。 --------------------编程问答-------------------- RGP.BLL.School bll = new RGP.BLL.School();
DataSet ds = bll.GetSchoolList("", "order by schoolOrder asc");
foreach (DataRow dr in ds.Tables[0].Rows)
{
listItem = new ListItem(dr .schoolName, dr.RoleId.ToString());
Dropdownlist.Items.Add(listItem);
} --------------------编程问答-------------------- refer:
http://www.cnblogs.com/insus/articles/2075101.html --------------------编程问答-------------------- 你可以将该页的数据源取3个字段,2个绑定在DROPDOWNLIST中,另外整页的数据保存在HASHTABLE里或者其他LIST里,在取了ID还要取别的值的话在对应的表格数据中取值。
4楼的方法是拼接后同时显示在DROPDOWNLIST中,应该不是你想要的结果。 --------------------编程问答-------------------- 把值用某种规则拼接起来,然后用的时候再拆分。 --------------------编程问答-------------------- 这个我做过,很简单。直接用sql语句处理好了,后台跟普通的一样绑定。
比如:select A||B as newname,C from table;--这是oracle中的写法,将A和B两个字段组合起来形成一个字段,给dropdownlist绑定。 --------------------编程问答-------------------- “再进行一次查询”在速度上不会产生什么问题。当你在程序执行逻辑上调通了之后,就可以写几行代码将这个bll对象保存到数据缓存Cache中,而不需要每次都读取数据库。
数据缓存机制实际上是隐藏在 bll.GetSchoolList 代码内部,UI编程根本无需知道它,从代码上看似乎每一次都是读取数据库的,其实这种“数据库”包括本地内存中的缓存。 --------------------编程问答-------------------- 就可以写几行代码将这个bll对象保存到数据缓存Cache中 --〉 就可以写几行代码将这个ds保存到数据缓存Cache中 --------------------编程问答--------------------
这个是把两个字段合并到一起显示。但是我需要的是两个字段分开,有不同用途, --------------------编程问答-------------------- --------------------编程问答-------------------- 把需要的值,在sql中组合好,然后赋给DropDownlist的DataValueField,
当用户选择时,对选择的值,再切割值,不是可以吗?
因为用户只是看到友好的文件DataTextfield,值只是为给程序员使用。 --------------------编程问答--------------------
<asp:DropDownList ID="drpList" runat="server" onchange="OnSelectChange(this)"></asp:DropDownList>
<br />
<input type="text" id="my-id" name="my-id"/>
function OnSelectChange(e)
{
var item = e.options[e.options.selectedIndex];
document.getElementById("my-id").value = item.attributes['data-id'].value;
}
foreach (DataRow dr in dt.Rows)
{
ListItem item = new ListItem();
item.Attributes["data-id"] = dr["id"].ToString();
item.Text = dr["schoolName"].ToString();
item.Value = dr["schooldescription"].ToString();
drpList.Items.Add(item);
}
补充:.NET技术 , ASP.NET