【问题标题】:How to add a row dynamically in editable grid in asp.net using C#?如何使用 C# 在 asp.net 的可编辑网格中动态添加一行?
【发布时间】:2014-03-21 05:49:52
【问题描述】:

如何使用 C# 在 asp.net 的可编辑网格中动态添加一行。 在我的网站中,我需要从用户那里获取所需行数的输入,然后生成可编辑的网格视图。请发给我解决这个问题的代码。

谢谢。

【问题讨论】:

标签: c# gridview dynamic


【解决方案1】:

我已经解决了我的问题并通过自学得到了正确的答案。 我想分享它..

首先在您的表单中添加一个 DropDownList 和一个 GridView,然后在 DropDownList 中为用户添加一些关于他们想要在运行时添加的行数的选项,在我的网站中,我添加了四个数字:1、2、3、4; 而后面的代码是:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
   int x = Convert.ToInt32(DropDownList1.SelectedItem.ToString()); // Number of rows
   DataTable dt = new DataTable();
   for (int i = 0; i < x; i++)
   {
     DataRow row1 = dt.NewRow();
     dt.Rows.Add(row1);    
   }

   for (int i = 0; i < x; i++)
   {
     DataRow row1 = dt.NewRow(); //Adding rows
     dt.Rows.Add(row1);
   }

   //Bind the datatable with the GridView.
   GridView1.DataSource = dt;
   GridView1.DataBind();
}

【讨论】:

    【解决方案2】:

    您必须构建一个可以绑定到网格的数据源。例如,您可以使用DataTableList&lt;myObject&gt; 来存储您的数据。然后将其用作数据源,GridView 成为来自您的数据源的显示数据。如果要添加/删除数据,只需从数据源中添加/删除对象。示例代码:

    public class Test{
     public int Id {get; private set;}
     public string Bez {get; private set;}
    
     public Test(int id, string bez)
     {
       this.Id = id;
       this.Bez = bez;
     }
    }
    

    使用对象创建数据源:

    List<Test> allTests = new List<Test>();
    allTests.add(new Test(1, "Test"));
    allTests.add(new Test(2, "Test2"));
    
    myGrid.DataSource = allTests;
    

    现在您可以使用列表。网格可能需要刷新才能显示编辑。如果您在 Grid 中编辑数据,这将直接影响您的数据源对象。

    如果这不是您要搜索的内容,请澄清您的问题。

    【讨论】:

    • 在表单加载时,我的可编辑网格只显示一行,我想让用户通过下拉列表选择他想要输入的行数,选择后应该在可编辑中显示多少行网格请建议我如何解决这个问题
    • 您需要将下拉列表中的选定行传输到网格的数据源。如果您使用迄今为止完成的代码编辑您的问题,将会很有帮助。那我也许可以给你更密切的帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 2020-01-29
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多