2014-09-18 66 views
0

對身體負荷我在這個功能我是隱藏字段asp.net隱藏字段的值沒有得到在窗體加載事件

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

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

和碼附加價值調用這個函數

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

在表單加載事件的文件後面,我試圖獲取隱藏字段的值,但我無法獲得該值。

protected void Page_Load(object sender, EventArgs e) 
     { 

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

但我沒有得到任何價值。但按下按鈕後,我即可獲得價值。 會有什麼問題。

+1

在你的情況下,Page_Load首先被執行!所以在這一點上沒有價值。然後,onload被執行並設置該值。因此,只有按下按鈕,您纔有價值。 – RealityDysfunction 2014-09-18 15:47:38

回答

1

我沒有得到任何值執行得到執行,你不能得到它的方式。但按下按鈕後,我即可獲得價值。

您是否期待價值在那裏第一次加載頁面時?因爲這是不可能的。當您單擊該按鈕時,您將回發到服務器,並且回傳包括設置在客戶端的值。這就是爲什麼你的按鈕點擊「工作」。

但是,當您第一次加載頁面時,您的服務器端代碼將無法看到客戶端值尚未計算的。在你的情況下操作的順序大致是:

  1. 用戶請求頁面
  2. Page_Load執行
  3. 頁面在瀏覽器中加載
  4. 的JavaScript執行
  5. 表單字段更新
  6. 用戶點擊按鈕
  7. 表單字段被髮送到服務器
  8. Page_Load執行
  9. Click處理程序執行
  10. 等等...

步驟2不能使用是不會被計算到步驟4 ASP .NET不支持的值預科(還)。

2

Page_Load是在服務器端執行,waaay之前onload獲得在客戶端

相關問題