0

我想在表格中生成一个充满输入文本框的列。

目前,我通过 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" />
4

1 回答 1

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++;
}
于 2013-09-20T10:11:47.597 回答