我有一个gridview,其中有一个boundfield,在用户从下拉列表中进行一些选择后填充在代码隐藏中。这很好,但我还有两个其他列,其中包含TemplateFields中的复选框。这些永远不会显示在此gridview中。 这是aspx:
<asp:UpdatePanel ID="clientServerUpdatePanel" runat="server">
<ContentTemplate>
<asp:GridView ID="clientServerGridView" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="Operating System" DataField="OS" />
<asp:TemplateField HeaderText="Client" >
<asp:ItemTemplate>
<asp:CheckBox runat="server" ID="clientCheckBox" Checked="false" />
</asp:ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Server">
<asp:ItemTemplate>
<asp:Checkbox runat="server" ID="serverCheckBox" Checked="false" />
</asp:ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
这是一个置于单击事件处理程序中的相关代码隐藏:
Dim dt As DataTable = New DataTable()
dt.Columns.Add(New DataColumn("OS", System.Type.GetType("System.String")))
For Each OSItem As ListItem In Me.defaultOSesListBox.Items
If Not OSItem.Selected Then
Continue For
End If
Dim dr As DataRow = dt.NewRow()
Dim os As String = OSItem.Text
dr("OS") = os
dt.Rows.Add(dr)
Next
Me.clientServerGridView.DataSource = dt
Me.clientServerGridView.DataBind()
有谁知道问题的根源是什么?
编辑:我需要将复选框包含在
中<ItemTemplate>
而不是
<asp:ItemTemplate>
答案 0 :(得分:1)
我发现了这个问题。我把复选框包裹在
中<asp:ItemTemplate>
应该是什么时候
<ItemTemplate>
当我做出这个改变时,问题立即得到解决。