C# 如何将自定义复选框列表转换为等效的GridView?
我有一个自定义复选框列表:C# 如何将自定义复选框列表转换为等效的GridView?,c#,data-binding,gridview,webforms,checkboxlist,C#,Data Binding,Gridview,Webforms,Checkboxlist,我有一个自定义复选框列表: <CustomCheckBoxList runat="server" ID="ItemsCBL" DataSourceID="ItemsData" DataTextField="datacolumn" DataValueField="datacolumn" SelectedValues='<%# Bind("Items") %>' /> 其中SelectedValues属性的类型为NHibernate.Collection
<CustomCheckBoxList runat="server" ID="ItemsCBL" DataSourceID="ItemsData"
DataTextField="datacolumn" DataValueField="datacolumn"
SelectedValues='<%# Bind("Items") %>' />
其中SelectedValues属性的类型为NHibernate.Collection.Generic.PersistentGenericBag
如何将其转换为具有相同绑定功能的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,因为我需要添加一个额外的复选框列
谢谢回复 我认为您所做的是正确的,但是您需要将“Checked”属性添加到复选框中,以调用服务器端函数来检查当前复选框是否在所选项目中。解决方案是手动执行双向数据绑定 OnRowDataBound事件处理程序上的数据源绑定 并绑定到父控件OnRowEditing事件处理程序中的数据源
示例:我该怎么做?绑定必须是双向的在返回的数据中是否有一列指定是否选中复选框?!SelectedValues的类型为NHibernate.Collection.Generic.PersistentGenericBag。在它里面有一些字符串用于选中的标签。CustomCheckBoxList位于FormView内部,FormView也是数据绑定的,SelectedValues=''正在父字段“Items”上执行。如果要允许双向绑定,必须使网格的返回数据包含一个值为选中或未选中的列,以便我们可以对其调用“Bind”函数。