Я хочу создать столбец с полными текстовыми полями ввода внутри таблицы.
В настоящее время я динамически генерирую таблицу из С# через 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" />
Если вы хотите обрабатывать динамические текстовые поля на стороне сервера после сообщения формы, сначала необходимо изменить свой 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++;
}