接受C#中动态创建的HTML输入文本框的值

时间:2013-09-20 09:53:43

标签: c# jquery html asp.net

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

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

1 个答案:

答案 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++;
}