2012-03-23 9 views
0

Javascriptで変数をGlobalとして作成しました。私はinitialize()関数でオブジェクトとして初期化しました。ClientScript.RegisterClientScriptBlockオブジェクトエラー

var path; 
function initialize() { 
    var polyOptions = { strokeColor: '#FF0000', strokeOpacity: 1.0, strokeWeight: 2 } 
    path = new google.maps.Polyline(polyOptions); 
} 

function drawpoly1() { 
path.getPath().push(location); 
} 

私は、関数が呼び出された

ClientScript.RegisterClientScriptBlockを通じて.NETからこの関数を呼び出していますが、それは

としてエラー

のMicrosoft JScriptのランタイムエラーを示しています。 'パス' はnullですがまたはオブジェクトではない

このエラーを処理する方法を教えてください

答えて

0

こんにちは私はあなたのクライアントのスクリプトを失うことになるあなたのページをポストバックすると、あなたが持っているオブジェクトと定義を見つけることは明らかではないので、サーバーサイドのユーザーClientScript.RegisterClientScriptBlock自体から両方の関数を呼び出すことです宣言されたクライアント側。以下に例を示します。

protected void btn_Click(object sender, EventArgs e) {  
    System.Text.StringBuilder sb = new System.Text.StringBuilder();  
    sb.Append("<script language='javascript'> var lbl; function Initialize() {");   
    sb.Append("lbl = 'lblDisplayDate';"); sb.Append("}</script>"); 

    if (!ClientScript.IsClientScriptBlockRegistered("JSScriptBlock")) { 
      ClientScript.RegisterClientScriptBlock(this.GetType(), "JSBlock", sb.ToString()); 
      } 

      string funcCall = "<script language='javascript'>Initialize();</script>"; 

      if (!ClientScript.IsStartupScriptRegistered("JSScript")) { 
      ClientScript.RegisterStartupScript(this.GetType(), "JSScript", funcCall); 
      } 
    } 
関連する問題