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

一个超难的dropdownlist 的获取value的问题!

请大家帮帮忙,DropDownList中如何取选中的文本对应的Value的值? 
例: 
ddl_department.DataTextField   =   "dept_name";    
ddl_department.DataValueField   =   "dept_code";    
     
  我想让它在点击某一项后,显示的是被选中项的“detp_code”,而不是“dept_name”,我知道可以用一下方法得到它的值,string sDeptCode = ddl_department.SelectedItem.Value.Trim();  //取得dept_code 的值 

但怎么让它们显示在dropdownlist里呀? 也就是点击后显示dept_code在dropdownlist框里.  --------------------编程问答-------------------- textfield跟valuefield的是一一对应的。
除非楼主把textfield跟value设置成一样的。
text是显示的值,value是实际返回的值 --------------------编程问答-------------------- ddl_department.DataTextField   =   "dept_code";     不就可以了吗? --------------------编程问答-------------------- 可是我要显示给用户看的是 "Dept_code + dept_name" 的格式,而实际当用户选择的时候在dropdownlist 中显示的是dept_code. --------------------编程问答-------------------- 顶楼主你一下。   
http://qzshi.com   
网站建设技术论坛 
另外招版主,或合作管理员,有兴趣的加群4228406 --------------------编程问答-------------------- 在事件里赋值不就行了吗
private void ddl_department_SelectedIndexChanged(object sender, System.EventArgs e)
{
    this.ddl_department.SelectedItem.Text+=this.ddl_department.SelectedValue;
}
可以试试,细节方面自己调整 --------------------编程问答-------------------- 如果这样的话,那么我的dropdownlist 中的原有的 "Dept_Code + Dept_Name" 就会变成 "Dept_Code" 了.当用户建立下一条记录的时候,就看不到对应的"Dept_Name",并且我也没有办法把它初始化为默认值空. --------------------编程问答-------------------- 你把两个反过来就可以了
ddl_department.DataTextField   =   "dept_code";    
ddl_department.DataValueField   =   "dept_name";    
       --------------------编程问答-------------------- 你要實現的功能好像比較矛盾呀,展開點選的時侯要兩個都顯示,點選上去了要只顯示一部分
dropdownlist能實現嗎?建議用textbox和button結合用,點擊button開窗,顯示完整的數據(dept_code+dept_name),
讓user選擇,但點擊選好后就關窗,回到主頁在textbox中顯示點選的dept_code --------------------编程问答-------------------- 我也考虑过楼上所说的,但是我感觉这种方法用起来很不方便,所以就想请教一下大家,有没有更好的方法实现这种功能.或者是当光标移动到dropdownlist上时,自动显示对应的dept_name,我的另外一个想法是当textbox获到焦点的时候,自动触发dropdownlist显示的事件,但Web的textbox好像没有这类事件! --------------------编程问答-------------------- 另外就是dropdownlist 能否自动展开选项,不用手动按那个小三角,或者按其他按钮可以触发它展开! --------------------编程问答--------------------
写sql这样写
 select code as value ,code+name as text from xxx
ddl_department.DataTextField   =   "value ";    
ddl_department.DataValueField   =   "text ";
在SelectedIndexChanged中给ddl_department.text赋值
 ddl_department.Text = ddl_department.selecteditem.value --------------------编程问答-------------------- 不是很明白,楼主要干什么


个人主页:
http://www.tzkandian.cn --------------------编程问答-------------------- 改你作为DataSouce的DataTable里列[dept_name]的值,用循环改下改成
DataTable.Rows[i]["dept_name"] + DataTable.Rows[i]["dept_code"]不就行了,中间用啥分隔自己加就行了啊
--------------------编程问答-------------------- 另外想问一下大家,有没有让dropdownlist自动展开的事件.就是不用点那个小三角,可以自动展开. --------------------编程问答-------------------- 我的目的就是,在dropdownlist 中显示是dept_code + dept_name,但当他选其中一个项目的时候,只显示dept_code,
如果只是单纯的向楼上几位说的强行赋值, 如下:
在SelectedIndexChanged中给ddl_department.text赋值 
 ddl_department.Text = ddl_department.selecteditem.value

当用户建立一个新记录的时候,原来被选择的那条记录则只会显示dept_code,而没有dept_name,并且没办法用.
dropdownlist.ClearSelection()来清空选中的内容.麻烦非常的大.
--------------------编程问答-------------------- 看不动楼主的意思啊,非要用死方法解决吗?换个思路做偏方立刻就OK了。。。 --------------------编程问答-------------------- 一般这种情况都是重新做控件。
或者在页面上再放一个textbox,选择后textbox显示编号 --------------------编程问答-------------------- 没有简单一点的办法可以实现吗?真是郁闷! --------------------编程问答-------------------- 你要做的是把value和TEXT的值都显示给用户看,然后value里的值只是value对吧!那么value你就不需要去管它,写法和以前一样!TEXT里的值,在磅定的时候就把他们合并起来就行了!如果是数据库读出来的数据绑定,那只要把在SQL里取的时候加就可以了!当然也可以取出来在前台循环的添加起来也行!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,