2012-01-23 12 views
0

私は、SharePointのサンドボックスsoltuionにSP2007地図を変換しようとしているが、いくつかの理由で、私は私のWebパーツをアップロードするとき、私はこのJavaScriptエラーを取得するプロパティを編集しようと、ビングマップWebパーツ(Javaスクリプトエラー)

ています

プロパティの値が「UpdateWebPartMenuFocus」nullまたは未定義ではなく、Functionオブジェクト

私は誰かが、コアを参照されなかった場合ので、それが来て、このエラーの私の研究をした、とだけいくつかの記事を見つけます.jsをv4.master(デフォルトマスターページ)に入れましたが、私はチェックして、既に以下のように参照しました。

<SharePoint:ScriptLink language="javascript" name="core.js" OnDemand="true" runat="server" /> 

とここに私のコードで、

 StringBuilder mapHTML = new StringBuilder(); 
     mapHTML.Append("<div>"); 
     mapHTML.Append("<script src=\"https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.3\"></script>"); 
     mapHTML.Append("<script type='text/javascript' id='clientEventHandlersJS'>"); 
     mapHTML.Append("var map = null;"); 
     mapHTML.Append("function GetMap()"); 
     mapHTML.Append("{"); 
     mapHTML.Append("try{"); 
     mapHTML.Append(" var latLon = new VELatLong(52.29504228453734,-2.2851562500000044);"); 
     mapHTML.Append("map = new VEMap('myMap');"); 
     mapHTML.Append("map.LoadMap(latLon,5);"); 
     mapHTML.AppendFormat("map.Find(null, '{0}', null, null, null, null, false, false, false, true,LocFound);", HtmlEncode(_Location)); 
     mapHTML.Append("}"); 
     mapHTML.Append("catch(err){}"); 
     mapHTML.Append("}"); 
     mapHTML.Append("function LocFound(thelayer, resultsArray, places, hasMore, veErrorMessage)"); 
     mapHTML.Append("{"); 
     mapHTML.Append("try{"); 
     mapHTML.Append("if(places != null && places.length >0)"); 
     mapHTML.Append("{"); 
     mapHTML.Append("var latlong = places[0].LatLong;"); 
     mapHTML.Append("}"); 
     mapHTML.Append("else"); 
     mapHTML.Append("{"); 
     mapHTML.Append("myMap.style.display = 'none';"); 
     mapHTML.Append("locationError.style.display = 'block';"); 
     mapHTML.Append("}"); 
     mapHTML.Append("var shape = new VEShape(VEShapeType.Pushpin,latlong);"); 
     mapHTML.AppendFormat("shape.SetTitle('{0}');", HtmlEncode(_PushPinTitle)); 
     mapHTML.Append("map.AddShape(shape);"); 
     mapHTML.Append("map.SetZoomLevel(14);"); 
     mapHTML.Append("}"); 
     mapHTML.Append("catch(err){}"); 
     mapHTML.Append("}"); 
     mapHTML.Append(" function addLoadEvent(func) "); 
     mapHTML.Append(" { "); 
     mapHTML.Append("try{"); 
     mapHTML.Append(" var oldonload = window.onload; "); 
     mapHTML.Append(" if(typeof window.onload != 'function') "); 
     mapHTML.Append(" { "); 
     mapHTML.Append("  window.onload = func; "); 
     mapHTML.Append(" } "); 
     mapHTML.Append(" else "); 
     mapHTML.Append(" { "); 
     mapHTML.Append("  window.onload = function()"); 
     mapHTML.Append("  { "); 
     mapHTML.Append("   func(); "); 
     mapHTML.Append("  } "); 
     mapHTML.Append(" } "); 
     mapHTML.Append("}"); 
     mapHTML.Append("catch(err){}"); 
     mapHTML.Append(" } "); 
     mapHTML.Append("addLoadEvent(GetMap); "); 
     mapHTML.Append("</script>"); 
     mapHTML.AppendFormat("<div id=\"myMap\" style=\"position:relative\" width:\"{0}\" height:\"{1}\" ></div>", HtmlEncode(_MapWidth), HtmlEncode(_MapHeight)); 
     mapHTML.AppendFormat("<div id=\"locationError\" style=\"position:relative\">", HtmlEncode(_MapWidth), HtmlEncode(_MapHeight)); 
     //mapHTML.AppendFormat("{0}", HtmlEncode(_LocationError)); 
     mapHTML.Append("</br>"); 
     mapHTML.AppendFormat("{0}", HtmlEncode(_Location)); 
     mapHTML.Append("</div>"); 
     mapHTML.Append("</div>"); 
     Controls.Add(new LiteralControl(mapHTML.ToString())); 
     //AddControl(new LiteralControl(mapHTML.ToString())); 

今、私は誰もが場所とWebパーツのマップを取得する任意のより良い方法を知っている第二にあれば、このエラーを取り除く方法を見つけるカント Google APIを使用するような、私はいくつかのプロジェクトを見た

Bing Map Code Plex

しかし、それにはAJAXコントロールがないんとして、それは少し古いスタイル、そして少ない機能を探します。

(注:私はシルバーライトを使用することはできません、クライアントの数がたくさんあると銀の光やその他の制限のためのプラグインをインストールするためにそれらを強制したいいけないと)私はこのコードを追加するとき

答えて

0

エラーが消えます、それは誰かがそれをよりよく説明することができればそれが最も歓迎されている場合は、Sharepoint 2010スクリプトマネージャにこのスクリプトを登録し、私が知る限り、競合を停止します。

System.Web.UI.ClientScriptManager csm = Page.ClientScript; 
StringBuilder builder = new StringBuilder(); 
string SCRIPT_NAME = "MapScript" + this.ID; 
    {// all that code above} 
csm.RegisterClientScriptBlock(this.GetType(), SCRIPT_NAME, builder.ToString(), false); 

Google Map Webpart

これは誰もが知っている場合、私は思っていた私がまさに望んでいたが、そのGoogleマップ+私のウェブサイトのための自由ではない(私は私のSharePointアプリケーションを使用するためのユーザに課金される)

です私はwebpartとしてマップを使用することができます無料のライセンスまたは方法。

乾杯

関連する問題