【问题标题】:generate datagrid row based on textbox input根据文本框输入生成数据网格行
【发布时间】:2018-05-22 02:46:40
【问题描述】:

如何根据用户在网络上的输入生成数据网格行,所以如果我在文本框中输入 5,则将生成 5 行,反之亦然。 我已经在下面尝试了我的这段代码,但每次尝试运行我的程序时,我都会收到 Exception of type 'System.OutOfMemoryException' was thrown 错误

我的 aspx.cs

private DataTable TempTable
{
    get { return (DataTable)ViewState["TempTable"]; }
    set { ViewState["TempTable"] = value; }
}

public void dtTemp()
{
    TempTable = new DataTable();
    TempTable.Columns.Add("ID_", typeof(string));
    TempTable.Columns.Add("Name_", typeof(string));
    TempTable.Columns.Add("Phone_", typeof(string));
}

protected void btnAdd_Click(object sender, ImageClickEventArgs e)
{
    int rowTotal = Int32.Parse(totalRow.Text);
    int i = 0;
    panelTest.Visible = true;

    dtTemp();
    DataRow dr = TempTable.NewRow();

    for (; ; )
    {
        if (i < rowTotal)
        {
            dr = TempTable.NewRow();
            dr["ID_"] = "";
            dr["Name_"] = "";
            dr["Phone_"] = "";
            TempTable.Rows.Add(dr);
            grid1.DataSource = TempTable;
            grid1.DataBind();
        }
        else
        {
            break;
        }
    }
}

【问题讨论】:

    标签: c# asp.net datagrid


    【解决方案1】:

    你必须在你的for(;;)循环中增加i++

     protected void btnAdd_Click(object sender, ImageClickEventArgs e)
     {
        int rowTotal = Int32.Parse(totalRow.Text);
        int i = 0;
        panelTest.Visible = true;
    
        dtTemp();
        DataRow dr = TempTable.NewRow();
    
        for (; ; )
        {
            if (i < rowTotal)
            {
                dr = TempTable.NewRow();
                dr["ID_"] = "";
                dr["Name_"] = "";
                dr["Phone_"] = "";
                TempTable.Rows.Add(dr);
                grid1.DataSource = TempTable;
                grid1.DataBind();
            }
            else
            {
                break;
            }
    
            i++;
        }
    }
    

    【讨论】:

      【解决方案2】:

      我以前的代码使我的 Visual Studio 崩溃,它说我没有足够的内存,所以我稍微更改了我的代码并且它可以工作。

      public DataTable TempTable
      {
          get; set;
      }
      
      public void dtTemp()
      {
          TempTable = new DataTable();
          TempTable.Columns.Add("ID_", typeof(string));
          TempTable.Columns.Add("Name_", typeof(string));
          TempTable.Columns.Add("Phone_", typeof(string));
      }
      
      protected void btnAdd_Click(object sender, ImageClickEventArgs e)
      {
          int rowTotal = Int32.Parse(txtRow.Text);
      
          dtTemp();
          DataRow dr = TempTable.NewRow();
      
          for (int i = 0; i < rowTotal; i++)
          {
              dr = TempTable.NewRow();
              dr["ID_"] = "";
              dr["Name_"] = "";
              dr["Phone_"] = "";
              TempTable.Rows.Add(dr);
          }
      
          grid1.DataSource = TempTable;
          grid1.DataBind();
      }
      

      【讨论】:

        猜你喜欢
        • 2017-09-21
        • 1970-01-01
        • 2012-01-16
        • 1970-01-01
        • 2020-12-13
        • 1970-01-01
        • 2023-04-04
        • 2020-02-18
        • 2013-09-02
        相关资源
        最近更新 更多