0

aspx 页面有一个 UC。在 aspx.cs 中

if(!isPostBack){
    UC.DataBind();
 }

这个UC还有一个usercontrol UC1。在 UC.ascx.cs

 public void DataBind(){
   UC1.DataBind();
 }

在UC1

public void  DataBind(){
   List<Registeration> list = ... VAlues from database;
   dropdownlist1.DataSource = list;
   DropDownList1.DataTextField = 'username';
   DropDownList1.DataValueField = 'username';
   DropDownList1.databind();
}  

public void button1_click(){
    string selectedValue = DropDownList1.SelectedItem.Text;
 } 

问题:字符串 selectedValue 的值总是来自第一项......

评论:DropDownList 在 updatePanel

4

2 回答 2

0

看起来你做的一切都是正确的,但你还需要isPostBack()在你的用户控件上添加。

于 2012-08-20T04:07:21.377 回答
0

除了 DataTextField 之外,尝试填充 DropDownLost1.DataValueField。因为它没有被分配,所以它可能对于呈现的 DropDown 中的所有项目都是空的。要检查这一点,您可以查看 FireBug 中呈现的 HTML 以查看显示的内容。

于 2012-08-20T03:21:30.823 回答