2015-04-03 41 views
0

我有一个复选框列表,从数据库中获取其数据。用户将选择/复选框并单击删除。删除后,我正在重新绑定新数据,但这些更改未反映出来。该页面仍显示那些选中的复选框。尽管DB中的记录被删除。我错过了什么。CheckBoxList未更新 - ASP.Net

ASPX:

<asp:CheckBoxList ID="cblLanguages" runat="server" AppendDataBoundItems="true" 
      DataTextField="LanguageName" DataValueField="PKLanguageId" >    
</asp:CheckBoxList> 
<asp:Button ID="btnDelete" runat="server" OnClick="btnDelete_Click" Text="Delete" /> 

C#:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     { 
      BindData(); 
     } 
    } 

protected void btnDelete_Click(object sender, EventArgs e) 
    { 
     DeleteLanguages(); 
     BindData(); 
    } 

private void BindData() 
{ 
    DataSet dsData = LanguagesDB.GetLanguages(); 
    cblLanguages.DataSource = dsData.Tables[0]; 
    cblLanguages.DataBind();   
} 
private void DeleteLanguages() 
{ 
    //code to delete selected values 
} 

回答

3

每次加载的CheckBoxList清除的项目和加载。

private void BindData() 
{ 
    if(cblLanguages.Items.Count > 0) 
     cblLanguages.Items.Clear(); 
    DataSet dsData = LanguagesDB.GetLanguages(); 
    cblLanguages.DataSource = dsData.Tables[0]; 
    cblLanguages.DataBind();   
}