【发布时间】:2016-03-03 18:10:01
【问题描述】:
我需要一个 3 列 10 行的表格。如何在每个单元格中放置一个文本框?我知道我可以使用 10 个名为 textbox1、textbox2、...、textbox10 的文本框来做到这一点。但是我想从三个文本框中循环获取数据,将数据提交到数据库。换句话说,它比仅仅对每个文本框进行硬编码和调用更新命令 10 次更有效?
【问题讨论】:
我需要一个 3 列 10 行的表格。如何在每个单元格中放置一个文本框?我知道我可以使用 10 个名为 textbox1、textbox2、...、textbox10 的文本框来做到这一点。但是我想从三个文本框中循环获取数据,将数据提交到数据库。换句话说,它比仅仅对每个文本框进行硬编码和调用更新命令 10 次更有效?
【问题讨论】:
对于直接的 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 可以使用。。
【讨论】: