以下是我的代码。我正在使用telerik下拉列表..但是发生的事情是,从下拉列表中选择一个值后,当页面被回发时...我选择的值就会出现。
<telerik:RadComboBox ID="cmbSavedSearch" runat="server"
AutoPostBack="true"
AppendDataBoundItems="True"
EnableItemCaching="True"
DataSourceID="odsSavedSearch"
DataTextField="User_Search_Nm"
DataValueField="User_Search_Id"
OnSelectedIndexChanged="SavedSearchSelected"
Width="200px"
EnableViewState="true"
>
<Items>
<telerik:RadComboBoxItem Text="Please Select..." Value="0" />
</Items>
</telerik:RadComboBox>
protected void SavedSearchSelected(object source, EventArgs e)
{
try
{
SavedSearchId = Conversion.ToInt32Default(cmbSavedSearch.SelectedValue, 0);
cmbSavedSearch.FindItemByValue("0").Selected = true;
cmbSubVessel.Items.Clear();
}
catch (Exception ex)
{
bool rethrow =
ExceptionPolicy.HandleException ex,CurrentSite.Instance.Error_UI_Policy_Name);
NameValueCollection errDetail = new NameValueCollection(1);
errDetail.Add("UserErrorMessage", UserErrorMessage);
ExceptionHandler handler = new ExceptionHandler(ex, errDetail);
}
}
答案 0 :(得分:5)
我的猜测是,您每RadComboBox
次加载PostBack
。
您应该首次检查页面是否正在加载,或者在OnSelectedIndexChanged
事件被触发时是否在服务器上回发页面。
以下是它应该如何运作:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadcmbSavedSearch();
}
}
如果您在每Items
次RadComboBox
加载Postback
,SelectedValue
将会丢失,因为RadComboBox
刚刚构建完毕。