如何将自定义CheckBoxList转换为等价的GridView

本文关键字:GridView 转换 自定义 CheckBoxList | 更新日期: 2023-09-27 18:05:47

我有这个自定义CheckBoxList:

<CustomCheckBoxList runat="server" ID="ItemsCBL" DataSourceID="ItemsData"
    DataTextField="datacolumn" DataValueField="datacolumn"
    SelectedValues='<%# Bind("Items") %>' />

其中SelectedValues属性的类型为NHibernate.Collection.Generic.PersistentGenericBag<string>

如何将其转换为具有相同绑定功能的GridView ?

<GridView runat="server" ID="ItemsAllowed" ShowFooter="false" DataSourceID="ItemsData"
 AutoGenerateColumns="false">
<Columns>
  <asp:TemplateField HeaderText="UserAllowed">
    <ItemTemplate>
      <asp:CheckBox ID="cbUserAllowed" runat="server" />
    </ItemTemplate>
  </asp:TemplateField>
  <asp:TemplateField HeaderText="ItemList">
    <ItemTemplate>
      <asp:Literal ID="litItem" runat="server" Text='<%# Bind("datacolumn") %>' />
    </ItemTemplate>
  </asp:TemplateField>
</Columns>
</GridView>

我需要将其转换为GridView,因为我需要添加一个额外的复选框列。

谢谢你的回复!

如何将自定义CheckBoxList转换为等价的GridView

我认为你所做的是正确的,但是你需要将"Checked"属性添加到复选框中以调用服务器端函数来检查当前复选框是否在选定的项目中

解决方案是手动进行双向数据绑定。

从数据源绑定OnRowDataBound事件处理程序。

并在父控件OnRowEditing事件处理程序中绑定到DataSource。

例子:ASP。. NET数据绑定双向,双向从代码后面