2009-09-24 70 views
1

我有一個帶有aspx頁面的ASP.net應用程序。如何在子頁面的onload事件中調用javascript

Page_Load在aspx頁面的事件中,我正在處理一些基於javascript的隱藏變量的值的代碼(將javascript的結果賦予隱藏變量)。

我打電話給子頁面的Page_Load的javascript,在立即聲明中,我正在使用隱藏的變量值進行處理。當我訪問隱藏的變量值時,我只獲取默認值。

請給我任何處理場景。我需要執行JavaScript並將結果導入隱藏變量。只需要在Page_Load事件中發生。

隱變量的聲明:

<asp:HiddenField runat='server' ID='hdnDate' Value='0' /> 

Javscript:在代碼

function getCDate() { 
    var nowDate = new Date(); 
    var curr_month = nowDate.getUTCMonth(); 
    curr_month ++; 
    var dt = curr_month + "/" + nowDate.getUTCDate() + "/" +nowDate.getFullYear()+ " " + nowDate.getUTCHours()+":" +nowDate.getUTCMinutes()+":" +nowDate.getUTCSeconds(); 
    document.getElementById("ctl00_ContentPlaceHolder1_hdnDate").value = dt;   
    return true; 
} 

Page_Load方法後面的文件:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "getCDate();", true); 
    DateTime dt=Convert.ToDateTime(hdnDate.Value); 
    dt.AddDays(10); //getting error here because dt contains01/01/0001  
} 
+0

請重新提出您的問題並顯示一些代碼(在page_load和javascript中,您正在使用它將值分配給隱藏字段)。 – TheVillageIdiot 2009-09-24 05:56:41

+0

任何人都可以重新格式化代碼? – Billy 2009-09-24 06:21:11

回答

0

你不能在Page_Load中調用javascript。所以客戶端的東西只應該來自瀏覽器。您可以檢查是否頁面回發使用屬性對象這樣的PageIsPostBack

if(IsPostBack) 
{ 
    //this is coming from browser so you javascript might have been 
    //called and proper value set in hidden field. 
} 
0

JavaScript是在客戶端上運行,因此無法在服務器上的Page_Load事件中運行。

從代碼的外觀上來看,我敢肯定你不需要的JavaScript,你可以把價值成SessionVariable爲:

Session.Add(「DateRendered」,DateTime.Now。 AddDays(10)的ToString( 「MM/DD/YYYY」));

然後再檢索它。 ASP.net負責將其存儲在請求/響應中。

0

RegisterStartupScript將註冊您的下一頁加載腳本塊。 如果您只是想將一些值傳輸到.cs頁面,請在.cs頁面上寫一個靜態方法,並使用PageMethods.MethodName()從javascript調用它。

相關問題