2011-05-28 77 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