RadComboBox选中的值为空

时间:2012-09-26 16:23:25

标签: c# asp.net telerik selectedvalue radcombobox

点击“我的按钮”时,我得到了SelectedValue = ""

我的aspx:

<telerik:RadComboBox ID="ddl_contactList" runat="server" AutoPostBack="True" CausesValidation="False"
            CollapseDelay="0" Culture="ar-EG" ExpandDelay="0" Filter="StartsWith" ItemsPerRequest="10"
            MarkFirstMatch="true" Skin="Outlook" EnableAutomaticLoadOnDemand="True" EmptyMessage="-New Menu-"
            ShowMoreResultsBox="True" OnSelectedIndexChanged="ddl_contactList_SelectedIndexChanged"
            EnableItemCaching="false" EnableLoadOnDemand="True" EnableVirtualScrolling="True">
        </telerik:RadComboBox>

我的.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 == ""

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:3)

这是正常的,因为你重新绑定你的数据=&gt;所以你删除你选择的值

我建议你在!IsPostBack =&gt;中设置阻止发布时不要删除

在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"

答案 2 :(得分:1)

确保在页面加载或初始化时填充数据源(如数据集或数据表)