2012-08-01 54 views
0

我有一个编辑页面,我根据从数据库返回的值设置了radcombobox(rcb_ParentCompany)的选定索引。但是,在回发时,组合框中的文本将不断更改为数据集中的顶层项目。任何想法为什么?radcombobox总是在回发中选择顶部项目

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (IsPostBack) 
     { 
      BindOperatingNameComboBox(rcb_OperatingName); 
      BindParentCompanyComboBox(rcb_ParentCompany); 
     } 
    } 



protected void btn_Edit_Command(object sender, CommandEventArgs e) 
    { 
     Client ClientToEdit = ClientController.ViewClient(int.Parse(e.CommandArgument.ToString())); 

     //Populate Client fields 
     txt_ClientName.Text = ClientToEdit.ClientName; 
     rcb_OperatingName.Text = ClientToEdit.OperatingName; 
     int ParentCompanyIndex = rcb_ParentCompany.FindItemIndexByValue(ClientToEdit.ParentCompanyID.ToString()); 
     rcb_ParentCompany.SelectedIndex = ParentCompanyIndex; 
     txt_Address1.Text = ClientToEdit.Address1; 
     txt_Address2.Text = ClientToEdit.Address2; 
     txt_Country.Text = ClientToEdit.Country; 
     txt_Region.Text = ClientToEdit.Region; 
     txt_City.Text = ClientToEdit.City; 
     txt_PostalCode.Text = ClientToEdit.PostalCode; 
     txt_ClientNote.Text = ClientToEdit.ClientNote; 

     tbl_EditServices.Controls.Clear(); 
     PopulateEditClientPanel(ClientToEdit); 

     btn_SaveChanges.CommandArgument = e.CommandArgument.ToString(); 
     btn_Cancel.CommandArgument = e.CommandArgument.ToString(); 
    } 



protected void BindParentCompanyComboBox(RadComboBox ComboBox) 
    { 
     DataTable OperatingNames = ClientController.GetExistingClientAndOperatingNames(""); 
     ComboBox.DataTextField = "ClientName"; 
     ComboBox.DataValueField = "ClientID"; 
     ComboBox.DataSource = OperatingNames; 
     ComboBox.DataBind(); 
    } 



protected void rcb_ParentCompany_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e) 
    { 
     BindParentCompanyComboBox((sender as RadComboBox)); 
    } 

回答

1

任何想法为什么?

是的,因为你正在做if(IsPostBack)而不是if(!IsPostBack)

+0

但组合框需要在每个回发到被绑定。否则,combobobox将是空的。 – cpiasecki 2012-08-01 18:16:41

+0

不,为什么?只要启用了ViewState,它就应该保持该状态。这里不是这种情况吗? – Icarus 2012-08-01 18:33:45

+0

我有viewstate启用,但如果我拿走页面加载内的绑定我得到错误,当我移动焦点以外的组合框“没有分配的数据源。无法完成回调请求” – cpiasecki 2012-08-01 18:45:43