2011-05-28 76 views
0

我創建javascript變量使用c#.net代碼隱藏在頁面後面,並將該變量放在頁面上使用Page.ClientScript.RegisterClientScriptBlock()。所以這個變量在頁面上可用,我可以使用jquery在客戶端讀取(獲取)該變量值。JavaScript變量存在頁上

我做如下:

C# : 

category_columnNames += "var vertical_" + catItem.VerticalID + "_columnNames=['Tools','PersonID','Topic','Category','Cost','Company']";  
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "LoadColumnNames", category_columnNames, true); 

通過這樣做,讓我們說:var vertical_1_columnNames=['Tools','PersonID','Topic','Category','Cost','Company'];是頁面上。現在我想先檢查一下variable(vertical_1_columnNames)是否存在於頁面上。如果是的話,我需要在客戶端side.I'm得到它(['Tools','PersonID','Topic','Category','Cost','Company'])值做下面的客戶端:

客戶端:

function ViewCartDirectLeadsGridInit(gridID) { 

    alert(gridID);//vertical_1_CategoryGrid 

    var vertical = gridID.toString().split('_')[1]; 
    var columnNames = "vertical_" + vertical + "_columnNames"; 

    alert(columnNames); // vertical_1_columnNames 
    alert(typeof(columnNames));// string 
    alert(eval(columnNames)); // ['Tools','PersonID','Topic','Category','Cost','Company'] 

     if (!window.columnNames) // This is not working.I want to check for existence of var vertical_1_columnNames 
     { 
     alert("success"); 
     return false; 
     } 
     else{ 
     // do something; 
     } 

}   

什麼建議嗎?

感謝,

一個

回答

1

window.columnNames將搜索一個名爲"columnNames""vertical_" + vertical + "_columnNames"變量。使用window[columnNames]

+0

反過來,你也可以通過window [「columnNames」]來訪問'window.columnNames',它們是等價的。我建議你儘可能使用點符號和括號表示法,當你處理動態鍵或帶有空格的鍵時。 – Halcyon 2011-05-29 00:13:15

+0

@ Manji:謝謝你!現在正在工作。 – user659469 2011-05-29 03:51:12

+0

@Frits van Campen:謝謝你,但你的動態密鑰是什麼意思? – user659469 2011-05-29 03:52:03