2014-12-05 2 views
0

Я программно создал несколько скрытых полей на стороне клиента, вставленных в форму. Я проверил, что form.childElementCount увеличивается.клиентская сторона динамически создавала скрытые поля, потерянные при обратной передаче

var disabledState_id = "<%=HidData_DisabledState_Prefix%>" + uiObj.attr("id"); 
... 
disabledState = $("<input type='hidden' id='" + disabledState_id + "' />"); 
disabledState.appendTo("form"); 

При обратной передаче я не могу найти эти скрытые значения в Request.Form. не могут найти эти ключи также в Request.Form.AllKeys, так как идентификатор привязан к префиксу.

+3

Вам необходимо установить атрибут атрибута –

+0

ДА. plz опубликуйте это как ответ, поэтому я его отмечу. – Kelmen

ответ

2

Вы должны установить name атрибут для получения входного значения s end на FORM submit.

0

Если у вас есть сгенерированный кодом HiddenField, он должен иметь тот же идентификатор и быть создан до того, как страница задает значения, опубликованные в OnInit.

Следующая ссылка может помочь вам:

http://www.codeproject.com/Articles/3684/Retaining-State-for-Dynamically-Created-Controls-i

Вы можете использовать:

protected string disabledState = ""; 
protected void Page_Load(object sender, EventArgs e) 
{ 
     this.disabledState = Request.Form["disabledState"]; 
} 

В JavaScript вы можете использовать следующее:

var disabledState ; 
    window.onload = function() { 
     disabledState = document.getElementById('"+disabledState_id+"'); 
    }; 
+0

Я не создаю их на стороне сервера, они полностью созданы на стороне клиента. – Kelmen

+0

См. Отредактированный пост выше, если он вам поможет. – user3263194

Смежные вопросы