在GridView中使用LINQ



我是web开发和使用控件的新手,所以请原谅我。

我有一个GridView,里面有复选框(请参阅下面的标记)

当用户浏览并勾选任何框并点击我的提交按钮时我想运行LINQ查询获得所有行与checkbox1。checked = True

类似:

Dim sList = (From row in Gridview1
             Where row.Cells("IsStarFleet") = True
             row.Cells("ID)).ToList

标记:

<asp:GridView ID="GridView1" runat="server" Width="516px" AutoGenerateColumns="False" AllowPaging="True">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" />
        <asp:BoundField DataField="FirstName" HeaderText="FirstName" />
        <asp:TemplateField HeaderText="IsStarFleet">
            <ItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack ="False" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

您需要将FindControl用于TemplateField中的控件,Cells(index)用于BoundFields:

Dim checkedIDs = From row In GridView1.Rows.Cast(Of GridViewRow)()
                 Where DirectCast(row.FindControl("CheckBox1"), CheckBox).Checked
                 Select row.Cells(0).Text
Dim checkedIdList = checkedIDs.ToList()

相关内容

  • 没有找到相关文章

最新更新