对于Asp.net Gridview中的每个循环都不能正常工作

时间:2014-03-13 23:33:14

标签: asp.net vb.net gridview

我有GridView Checkbox control我希望获得所选的复选框,但是当我尝试使用Gridview使用For Each Loop迭代正在检索的数据时是重复的。我真的不知道如何解决它。我已经解决了相同的问题或方法,我得到了相同的代码,所以我在这里失踪了吗?这是我的代码:

  For Each row As GridViewRow In GridView1.Rows
        If row.RowType = DataControlRowType.DataRow Then
            Dim chkRow As CheckBox = TryCast(row.Cells(0).FindControl("chkRow"), CheckBox)
            If chkRow.Checked Then
                Dim name As String = row.Cells(1).Text
                Response.Write(name)
            End If
        End If
    Next

这是我的aspx代码:

  <asp:GridView ID="GridView1" CssClass="table table-bordered" runat="server" 
            CellPadding="4" ForeColor="#333333" 
            GridLines="None" Width="100%" DataKeyNames="ID" 
            AutoGenerateColumns="False">
            <AlternatingRowStyle BackColor="White" />
            <Columns>

                <asp:TemplateField HeaderText="Select">
                    <ItemTemplate>
                        <asp:CheckBox ID="chkRow" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="ID" HeaderText="ID" />
                <asp:BoundField DataField="Laboratory Name" HeaderText="Laboratory Name" />
                <asp:BoundField DataField="Description" HeaderText="Description" />
                <asp:BoundField DataField="Price" HeaderText="Price" />
            </Columns>
            <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>

2 个答案:

答案 0 :(得分:0)

鉴于这些信息,听起来好像是在回发时重新绑定gridview。

在您要数据绑定的代码中检查回发。

If Not IsPostBack() Then Me.GridView1.DataBind() End If

答案 1 :(得分:0)

如果您在页面加载时填充网格,请使用

If Not IsPostBack() Then 
GridView1.DataBind()  <if your you are populating data through class just add it>
or
populate(param1, param2,...)
End If

这肯定会解决您的问题