【问题标题】:How to add rows to GridView in asp.net c# application如何在asp.net c#应用程序中向GridView添加行
【发布时间】:2015-01-12 20:00:58
【问题描述】:

我已经在此页面上搜索了许多文章,但找不到适合我的答案。

好的,我有两个项目(一个是服务器(主机),一个是客户端)。第一个是 ASP.NET Empty Web Application,第二个是 ASP.NET Web Forms 站点。

在我的主机中,我有用于显示我的 Entity FrameWork 数据库中的用户的代码。在我的客户中,我有一个表单(至少我正在尝试创建一个),我应该能够在其中显示数据(用户)。

用于显示数据的代码可以正常工作,因为我之前已经使用过它。

但不知何故,我无法为 Gridview 创建代码,该代码会将数据库中的数据放入我的单元格中

假设 ID 列将显示用户 ID...名称列将显示用户名...

我已经设置了服务参考。

这是我到目前为止编写的代码,但它给了我一些错误。

GridView1.DataSource = null;
    GridView1.Refresh();
    ServiceReference1.mojWebServiceSoapClient client = new ServiceReference1.mojWebServiceSoapClient();
    var userList = client.getUsers();
    foreach (var user in userList)
    {
        DataTable dt = new DataTable();
        DataColumn column = new DataColumn();
        if (dt.Columns.Count == 0)
        {
            dt.Columns.Add("ID", typeof(Int32));
            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Last Name", typeof(string));
        }

        DataRow row = dt.NewRow();
        row[0] = user.userID.ToString();
        row[1] = user.Name;
        row[2] = user.lName;
        dt.Rows.Add(row);
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }

你们能帮我解决这个问题吗?非常感谢任何意见。

顺便说一句,此代码有效,但它只显示 1 个用户,而不是全部 (5) 个用户

【问题讨论】:

    标签: c# asp.net gridview client-server code-behind


    【解决方案1】:

    您在 for 循环中重复绑定,这在您的情况下是不正确的。您应该首先创建一个 DataTable,然后在 for 循环中将用户添加到其中。所以以下应该满足你的 nedd:

    GridView1.DataSource = null;
    GridView1.Refresh();
    ServiceReference1.mojWebServiceSoapClient client = new ServiceReference1.mojWebServiceSoapClient();
    var userList = client.getUsers();
    DataTable dt = new DataTable();
    DataColumn column = new DataColumn();
    dt.Columns.Add("ID", typeof(Int32));
    dt.Columns.Add("Name", typeof(string));
    dt.Columns.Add("Last Name", typeof(string));
    foreach (var user in userList)
    {
        DataRow row = dt.NewRow();
        row[0] = user.userID.ToString();
        row[1] = user.Name;
        row[2] = user.lName;
        dt.Rows.Add(row);
    }
    GridView1.DataSource = dt;
    GridView1.DataBind();
    

    希望有所帮助

    【讨论】:

    • 实际上可以。非常感谢您的好心先生!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多