RadComboBox选中的值为空

当我点击我的按钮时,我得到SelectedValue = ""

我的aspx:

   

我的.cs:

  private void BindContactLists(int year, int main_code) { ddl_contactList.Items.Clear(); DataTable dt = ContactList.GetContactListsByDep(year, main_code); ddl_contactList.DataSource = dt; ddl_contactList.DataTextField = "list_desc"; ddl_contactList.DataValueField = "list_code"; ddl_contactList.DataBind(); } 

我在page load调用它,因为当我在!Page.Ispostback调用它时,我收到以下错误:

没有已分配的数据源。 无法完成回叫请求。

我该如何解决这个问题? 马上:

ddl_contactList.Text == "MySelectedItemText"

selectedValue == ""selectedItem == ""

将您的调用从Page_Load()方法移动到BindContactLists()Page_Init()方法。 这允许在页面生命周期的后期为ViewState绑定设置控件,并允许适当填充SelectedValue属性。

这是正常的,因为你重新绑定你的数据=>所以你擦除你选择的值

我建议你设置你的块!IsPostBack =>你发布时不要擦除

在PageLoad中

 if(! IsPostBack) { ddl_contactList.Items.Clear(); DataTable dt = ContactList.GetContactListsByDep(year, main_code); ddl_contactList.DataSource = dt; ddl_contactList.DataTextField = "list_desc"; ddl_contactList.DataValueField = "list_code"; ddl_contactList.DataBind(); } 

并且您使用ViewState持久控制

设置EnableViewState="true"

在页面加载或初始化时确保您的数据源像数据集或数据表填充