如何在ASP.NET.net中将LINQ结果变量绑定到Gridview中

时间:2013-09-19 10:37:40

标签: asp.net linq gridview asp.net-membership

我写了一个简单的LINQ,它正在检索带有会员角色的用户名。现在根据我的需要,我必须将它绑定并显示到gridview中,但它没有发生......这是我的代码......

这是我的gridview代码......

<form id="form1" runat="server">
<div>
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
</div>
</form>

这是我的服务器端代码,带有LINQ查询..

protected void Page_Load(object sender, EventArgs e)
{
    BindGridviewData();      

}



protected void BindGridviewData()
{
    var roles = from MembershipUser u in Membership.GetAllUsers()
                select new
                {
                    user = u,
                    roles = Roles.GetRolesForUser(u.UserName)
                };

    GridView1.DataSource = roles;
    GridView1.DataBind();

}

但它没有发生......任何帮助都将受到赞赏......

3 个答案:

答案 0 :(得分:3)

此处示例显示条件员工年龄> = 20

的绑定(员工详细信息)

Check out this link to get more ideas

这很好用

            var result = from c in objDataContext.Employees
                         where c.EmployeeAge >= 20
                         select c;                
            List<Employee> lstEmployee = result.ToList();
            gridviewEmp.DataSource = lstEmployee;
            gridviewEmp.DataBind();

Getting started with LINQ to SQL

答案 1 :(得分:2)

gridview的数据源应该是不可数的。

尝试

  GridView1.DataSource = roles.ToList();
  GridView1.DataBind();

不要忘记添加对 System.Linq

的引用

如果您觉得有用,请标记为答案

答案 2 :(得分:0)

使用 FirstOrDefault()方法。

试试这个:

var roles = from MembershipUser u in Membership.GetAllUsers()
                select new { User = u.UserName, 
                    Role = Roles.GetRolesForUser(u.UserName).FirstOrDefault() 
               };