我有一个带有复选框的GridView。但是我在确定给定行的复选框是否被选中时遇到了实际问题。无法确定网格视图中复选框的状态
我需要从行中检索某个值并将其放入代码中。但是,当我遍历GridView行时,程序不会输入检查checkBox'x状态的if语句。
这里是后端代码:
Dim Primaryid As String = "Initial stage"
For Each gvr As GridViewRow In GridView1.Rows
If (CType(gvr.FindControl("CheckBox1"), CheckBox)).Checked = True Then
Primaryid = gvr.Cells(1).Text
End If
Next gvr
Dim exmess As String = "alert('" & Primaryid & "')"
Page.ClientScript.RegisterStartupScript(Me.GetType(), "ErrorAlert", exmess, True)
这里是GridView控件的代码。我在页面加载时自动填充它:
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None" Width="1500px">
<Columns>
<asp:TemplateField >
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<AlternatingRowStyle BackColor="White" />
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
如果您能指出我的错误,我将不胜感激。
我刚刚试过,它仍然没有得到我所选行的单元格值。它相当于处理所有的(如果我把它放在外面,如果if/else语句),或者如果它在里面 – meks 2013-02-26 08:35:59
为什么yo9u放置'Cells [3]'不是我们检查总是出现在第一列的复选框的值网格视图? – meks 2013-02-26 08:39:38
如果你想要选择的行应该是这样的:GridView1.SelectedRows。这要求GridView将FullrowSelect作为选择模式。 – WozzeC 2013-02-26 08:41:39