我想在表格中生成一个充满输入文本框的列。
目前,我通过StringBuilder从C#动态生成我的表。
sb.Append("<tr><td>" + item[0].ToString() + "</td><td>" + item[1].ToString() +
"</td><td>" + item[2].ToString() + "</td><td>" + item.GetString(3) + "</td><td>" +
item.GetDecimal(4) + "</td><td>"+ "<input type=\"text\" class=\"input-mini\"
columns=\"1\" name=\"ids\" ID= 'textbox" + i + "' /></td></tr>");
我知道我可以通过jquery
获取输入值并将其传递给C#
方法,但是有更简单的方法可以实现相同的目标吗?
编辑:显示表单处理
for (int element = 0; element <= totalelements; j++)
{
toList.Add(Request.Form["'textbox" + element + "'"]);
}
.aspx页面(此按钮的可见性由div切换)
<asp:Button runat="server" CssClass="btn" Height="27px" Width="190px" OnClick="doSomething" ID="do" Text="Send" />
答案 0 :(得分:2)
如果您想在表单发布后处理服务器端的动态文本框,则首先需要更改HTML以使用唯一的name
值,例如:
name='textbox0'
提交表单时不会使用ID属性。
然后,在服务器端,您可以使用Request.Form["elementName"]
访问元素。如果你知道你拥有的动态元素的数量,那么就这样做:
for(int i = 0; i < numberOfElements; i++)
{
string textValue = Request.Form["textbox" + i].ToString();
//do something with text value
}
如果您不知道元素的数量,可以这样做:
int i = 0;
while(true)
{
var textBox = Request.Form["textbox" + i];
if(textBox == null)//ran out of textbox elements to process
break;
string textValue = textBox.ToString();
//do something with text value
i++;
}