2014-09-18 3 views
0

на нагрузке тела я зову эту функциюasp.net скрытое значение поля не получают на события загрузки формы

<body onload="lotclick('1');"> 

в этой функции я задаю значение скрытого поля

function lotclick(lotid) 
{ 
    var dt = new Date(); 

    document.getElementById("lblindTime").value = dt.toString(); 

и в коде за файлом в событии загрузки формы. Я пытаюсь получить значение этого скрытого поля. Но я не могу получить это значение.

protected void Page_Load(object sender, EventArgs e) 
     { 

      string sfsf = lblindTime.Value.ToString(); 
    } 

, но я не получаю никакой ценности. но при нажатии кнопки я получаю значение. какая проблема. ??

+1

В вашем случае Page_Load запускается первым! Поэтому на данный момент нет никакой ценности. Затем выполняется загрузка onload и устанавливает значение. Поэтому имеет смысл, что только при нажатии кнопки вы должны иметь ценность. – RealityDysfunction

ответ

1

я не получаю никакого значения. но при нажатии кнопки я получаю значение.

Вы ожидали значение, чтобы быть там первый раз при загрузке страницы? Потому что это невозможно. Когда вы нажимаете кнопку, вы отправляете сообщение обратно на сервер, а пост-обратно включает значения, которые были установлены на стороне клиента. Вот почему кнопка «работает».

Однако при первой загрузке страницы ваш код на стороне сервера не может видеть значения на стороне клиента, которые еще не были рассчитаны. Порядок операций в вашем случае составляет примерно:

  1. Пользователя запрашивает страницу
  2. Page_Load выполняет
  3. Страницы загружается в браузере
  4. JavaScript выполняет
  5. Формы поле обновляется
  6. кнопку Пользователь щелкает
  7. Поля формы отправляются на сервер
  8. Page_Load выполняет
  9. Нажмите обработчик выполняет
  10. и так далее ...

Шаг 2 не может использовать значение, которое не собирается, чтобы быть вычислен до шага 4. ASP .NET не поддерживает предвидение (пока).

2

вы не можете получить его таким образом, как Page_Load выполняется на стороне сервера и получить казнены waaay перед тем onload получить выполняется на стороне клиента

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