【问题标题】:Use LINQ with GridView将 LINQ 与 GridView 一起使用
【发布时间】:2013-01-14 20:55:28
【问题描述】:

我是网络开发新手并使用控件,请见谅。

我有一个带有复选框的 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>

【问题讨论】:

  • 你想在哪里使用这个查询?

标签: asp.net vb.net linq gridview checkbox


【解决方案1】:

您需要在TemplateFieldCells(index) 中使用FindControl 控制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()

【讨论】:

  • 我试过这个,虽然代码似乎执行得很好,但它从来没有得到我检查过的任何行。
  • @ChinaSyndrome:也许您在回发时也对您的gridView 进行了数据绑定。你应该这样做If Not Page.IsPostBack Then grid.DataSource=... grid.DataBind() End If
猜你喜欢
  • 2011-04-04
  • 2010-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
相关资源
最近更新 更多