2012-04-04 35 views
0

有人可以告訴我如何實現這個 javascriptVariable = AspVariable與javascript遞增變量連接;如何在同一行寫入JavaScript和asp代碼?

即我想改變動態等式的左邊,這裏就是我試圖做到這一點,失敗:

for(j=1;someCondition;j++) 
{ 
eval("job"+j).Sdate=parseInt('<%= djobSdate[%>'+j+'<%=] %>'); 
} 

右手邊工作正常,但等式的左邊給出問題

+0

是djobSdate服務器變量?如果它是一個數組,你需要將整個數組輸出到頁面中,像Page.ClientScript.RegisterArrayDeclaration(<你的djobSdate數組作爲javascitpstring>) – mortb 2012-04-04 08:40:54

+0

你可以渲染最終的Javascript文本服務器端嗎?我的意思是在服務器端準備字符串,並在服務器端使用RegisterStartUpScript。這也適用於你。 – Pankaj 2012-04-04 08:44:15

+0

沒有從服務器調用javascript是非常忙碌的,它可能工作,但將不得不重寫很多代碼,這可能會帶來更多的問題,我是服務器端腳本的新手,事實上這是我第一次這樣做,謝謝你的回答tho,我正在做很多嘗試和錯誤的東西,希望有東西會點擊 – Snedden27 2012-04-04 08:59:54

回答

1

要通過傳遞javascript變量j來獲得服務器端函數djobSdate()的結果,您將需要使用AJAX。

這是因爲變量j具有計算客戶端的值。

考慮使用ASP.NET Web服務與jQuery AJAX

您可能會發現這篇文章有用:

http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/

然後您的代碼會更改爲類似:

for(j=1;someCondition;j++) 
{ 
    $.ajax({ 
    type: "POST", 
    url: "myWebService.asmx/GetdjobSdate", 
    data: '{j: "' + j + '"}', 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(data) { 
     eval("job"+j).Sdate=parseInt(data); 
    } 
    }); 
} 

你的網絡服務看起來像這樣:

[System.Web.Script.Services.ScriptService] 
public class myWebService : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public string GetdjobSdate(j) 
    { 
     return djobSdate(j); 
    } 
} 
相關問題