在 databind() 之后保留已检查的项目

发布于 2024-12-10 13:58:05 字数 731 浏览 0 评论 0原文

我正在填充一个数据表,该数据表又填充一个复选框列表。我希望在添加项目时选择它们。我可以做到这一点,但是当我添加第二个 -> 时第 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;
}

提前感谢您的帮助。

I am populating a data table which in turn populates a checkboxlist. I want the items to be selected when they are added. I can do this, however when I add a 2nd -> nth Item, it only keeps the last check box. Is there a way to persist selected check boxes through a bind? here is my current function:

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;
}

Thanks for the help in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深海夜未眠 2024-12-17 13:58:05

在再次对 CheckboxList 进行数据绑定之前,您必须保存所选项目。

例如(对 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

You have to save the selected items before you databind the CheckboxList again.

For example(sorry for VB.NET, but i think you'll understand what i mean):

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文