javascript变量存在于页面上

时间:2011-05-28 23:40:39

标签: c# javascript

我正在使用c#.net在页面后面的代码中创建javascript变量,并使用Page.ClientScript.RegisterClientScriptBlock()将该变量放在页面上。因此该变量在页面上可用,我可以使用jquery在客户端读取(获取)该变量值。

我正在做以下事情:

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)。如果是,那么我需要在客户端获得它的价值(['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;
      }

 }          

有什么建议吗?

谢谢,

A

1 个答案:

答案 0 :(得分:1)

window.columnNames将搜索名为"columnNames"而非"vertical_" + vertical + "_columnNames"的变量。使用window[columnNames]