Asp.net 将LINQ与GridView一起使用
我是新的网络开发和使用控件,所以请原谅我 我有一个带有复选框的GridView(请参见下面的标记) 当用户浏览并选中任何框并点击我的提交按钮时 我想运行LINQ查询,以获取checkbox1.checked=True的所有行 比如:Asp.net 将LINQ与GridView一起使用,asp.net,vb.net,linq,gridview,checkbox,Asp.net,Vb.net,Linq,Gridview,Checkbox,我是新的网络开发和使用控件,所以请原谅我 我有一个带有复选框的GridView(请参见下面的标记) 当用户浏览并选中任何框并点击我的提交按钮时 我想运行LINQ查询,以获取checkbox1.checked=True的所有行 比如: Dim sList = (From row in Gridview1 Where row.Cells("IsStarFleet") = True row.Cells("ID)).ToList 标记: <as
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
,对边界字段使用单元格(索引)
:
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()
对于模板字段中的控件,需要使用FindControl
;对于边界字段,需要使用单元格(索引)
:
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()
您想在何处使用此查询?您想在何处使用此查询?我尝试了此操作,尽管代码似乎执行得很好,但它从未获得我检查过的任何行。@ChinaSyndrome:可能您也在回发上对您的gridView
进行数据绑定。如果不是Page.IsPostBack,那么应该这样做,然后是grid.DataSource=。。。grid.DataBind()如果
,则结束。我尝试了这个方法,尽管代码似乎执行得很好,但它从未得到我检查过的任何行。@ChinaSyndrome:可能您也在回发上对您的gridView
进行数据绑定。如果不是Page.IsPostBack,那么应该这样做,然后是grid.DataSource=。。。grid.DataBind()如果
,则结束。