当前位置:编程学习 > C#/ASP.NET >>

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中 --------------------编程问答--------------------
引用 4 楼 insus 的回复:
refer:


http://www.cnblogs.com/insus/articles/2075101.html


这个是把两个字段合并到一起显示。但是我需要的是两个字段分开,有不同用途, --------------------编程问答-------------------- --------------------编程问答-------------------- 把需要的值,在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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,