【问题标题】:Taking user input from a table/gridview从表格/网格视图中获取用户输入
【发布时间】:2016-03-03 18:10:01
【问题描述】:

我需要一个 3 列 10 行的表格。如何在每个单元格中放置一个文本框?我知道我可以使用 10 个名为 textbox1、textbox2、...、textbox10 的文本框来做到这一点。但是我想从三个文本框中循环获取数据,将数据提交到数据库。换句话说,它比仅仅对每个文本框进行硬编码和调用更新命令 10 次更有效?

【问题讨论】:

    标签: c# html asp.net gridview


    【解决方案1】:

    对于直接的 HTML,解决方案在帖子末尾的开始..

    注意,您提到了 asp、C# 等。我从未接触过 ASP.NET,但以下是如何使用 Windows 窗体在 C# 中完成此操作。我不确定您尝试在哪里实现文本框网格,但是这个例子应该可以转移到多个平台(ASP.Net 有一个 datagridview,但我认为实现有点不同)给了一点肘润滑脂。网上有很多关于在 asp 中设置 datagridview 的教程,所以我把这部分留给你和谷歌。

    我会使用数据网格视图。有一些设置,但简而言之,假设表格在例程开始时应该是完全空白的:

    datagridview1.DataSource = null;
    datagridview1.Columns.Clear();  //Just make sure things are blank.
    
    datagridview1.Columns.Add("Column1","Column1");
    datagridview1.Columns.Add("Column2","Column2");
    datagridview1.Columns.Add("Column3","Column3");
    
    datagridview1.Rows.Clear();
    for(int i = 0;i<10;i++)
    {
        datagridview1.Rows.Add()
    }
    datagridview1.EditMode = DataGridViewEditMode.EditOnKeystroke;
    

    当您插入 DataGridView 对象时,您需要确保禁用用户添加行的功能,以免出现第 11 行。

    我可能会用“”预先填充每个单元格,以确保您不必处理空值。如果这样做了,那么您可以通过以下方式引用每个单元格:

    for(int i = 0;i<datagridview1.Rows.Count;i++)
    {
        string val = datagridview1.Rows[rowIndex].Cells[<Column Index, or Name>].Value.ToString();
    }
    

    Stack Overflow discussion of making a table editable

    我尝试了以下方法,得到了一个可编辑的文本框表格

    <body>
      <table>
            <tr>
        <th>Month</th>
        <th>Savings</th>
        <th>SomethingElse</th>
          </tr>
          <tr>
          <td><input type="text"></td>
          <td><input type="text"></td>
          <td><input type="text"></td>
          </tr>
          </tr>
          <tr>
          <td><input type="text"></td>
          <td><input type="text"></td>
          <td><input type="text"></td>
          </tr>
          </tr>
      </table>
    </body>
    

    下一步是确定如何访问该表。我认为有一种命名 html 元素的方法,您可以使用它来获取数据。我不是 HTML 人,所以.. 只是想为你找到前进的方向。

    引用从 C# 和/或 ASP.NET 读取 HTML 表的附加链接。似乎还有一个 ASP:Table 可以使用。。

    C# Thread

    ASP Thread

    【讨论】:

    • 感谢您的回答。但是我正在使用 html,除非我遗漏了一些我不能使用 datagridviews 的东西。我已经在 Windows 窗体中使用了很多,但我认为它们在我当前的上下文中无法访问。
    • 你可能是对的。我通过过滤 c# 标签看到了原始问题,所以认为这是一个 C#/.NET 问题。我添加了第一段并离开了帖子,认为它可能会给你一个运行方向。如果使用 C# / ASP.NET,则似乎存在数据网格视图。如果这是用纯 HTML 编写的,那就不用那么多了。
    • @coffy43 对于其他潜在的发帖者,您可能想为问题添加一些细节,特别是您当前用于实施解决方案的代码块/html,或该解决方案的开始。跨度>
    • 嗯,除了我所描述的之外,这是我的问题(这将起作用,但很乱)。我没有什么可去的。我试过数据网格。认为它与数据网格视图相同。然而他们不是。
    • 我忘了继续检查这里,我做了你所做的。然后在循环中使用 Request.Form["textbox"+i] 我能够让它工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    相关资源
    最近更新 更多