Принятие значений динамически создаваемых текстовых полей ввода HTML в C #

0

Я хочу создать столбец с полными текстовыми полями ввода внутри таблицы.

В настоящее время я динамически генерирую таблицу из С# через StringBuilder.

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#, но есть ли более простой способ добиться того же?

EDIT: показать обработку формы

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 ответ

2

Если вы хотите обрабатывать динамические текстовые поля на стороне сервера после сообщения формы, сначала необходимо изменить свой HTML для использования уникальных значений name, например:

name='textbox0'

Атрибуты идентификатора не будут использоваться при отправке формы.


Затем на стороне сервера вы можете получить доступ к элементам с помощью 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++;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню