在数据绑定后保留已检查的项目()

时间:2011-10-14 23:10:51

标签: c# asp.net data-binding checkboxlist

我正在填充数据表,而数据表又填充了一个复选框列表。我希望在添加项目时选择它们。我可以这样做,但是当我添加第二个 - >第n项,它只保留最后一个复选框。有没有办法通过绑定来保留选中的复选框?这是我目前的职能:

protected void FinalizeAdd_Click(object sender, EventArgs e)
{

    VersionDataTable.AddVersionDataTableRow(Convert.ToInt32(VersionDropDown.SelectedValue), ProductDropDown.SelectedItem.Text + " " + VersionDropDown.SelectedItem.Text);

    ProductCheckList.DataSource = VersionDataTable;

    ProductCheckList.DataValueField = VersionDataTable.VersionIDColumn.ToString();
    ProductCheckList.DataTextField = VersionDataTable.VersionTextColumn.ToString();
    ProductCheckList.DataBind();

    ProductCheckList.Items[ProductCheckList.Items.Count - 1].Selected = true;
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在再次对数据集列表进行数据绑定之前,必须先保存所选项目。

例如(抱歉VB.NET,但我想你明白我的意思):

Dim oldSelection = (From item As ListItem In ProductCheckList.Items
                    Where item.Selected).ToList
' databinding '
If oldSelection.Any Then
    For Each selectedItem In oldSelection
        Dim item = ProductCheckList.Items.FindByValue(selectedItem.Value)
        If Not item Is Nothing Then
           item.Selected = True
        End If
    Next
End If