朋友们,
我有一个包含100个或更多文本框(HTML或ASP.NET)的网格,每个文本框都包含一个固定长度的文本值,需要将所有这些传递回后端表单以进行数据库的批量更新.
我可以通过简单地遍历代码后面的每个控件.text属性来做到这一点.
然而,这使得代码变得庞大而丑陋.
我想知道是否有任何原因使用一些受控的循环结构和检索数据来完成每个控件
即
Private List<string> getdata()
{
Private List<String> MyList = new List<string>();
foreach (Textbox)control txbControl in ....// don't know what this will be
{
MyList.Add(txbControl.text);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,所有这些文本框在页面上都有唯一的ID标记即
<tablr>
<tbody>
<tr>
<td>
<asp:TextBox ID="TxB_Customize1" runat="server"></asp:TextBox>
<td/>
<td>
<asp:TextBox ID="TxB_Customize2" runat="server"></asp:TextBox>
<td/>
<td>
<asp:TextBox ID="TxB_Customize3" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
...... ......
抱歉忘记提及这一点,文本框按列分组,给定列中的每个文本框共享相似的名称,即给定实例中的"Txb_Customize".
因此,在检索值时,我还需要知道它的来源(可能是文本框ID).
看看Control.Controls酒店.
你想要的东西是这样的:
foreach (Control control in Controls)
{
TextBox textBox = control as TextBox;
// Ignore non-textboxes
if (textBox != null)
{
list.Add(textBox.Text);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是.NET 3.5,则可以使用LINQ以更简单的方式执行此操作:
return Controls.OfType<TextBox>()
.Select(textBox => textBox.Text)
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1760 次 |
| 最近记录: |