ASP.NETサイトでは、私はMasterページ上のScriptManagerコントロールを持っており、ScriptManagerProxyコントロールはすべての場所でコントロールしています。ほとんどの場合、私は<compositescript>
ブロックを使用してスクリプトを1つのファイルに結合します。開発中のScriptManagerスクリプトの統合を無効にしますか?
Core.Master
<asp:scriptmanager id="ScriptManager1" runat="server" >
<compositescript>
<scripts>
<asp:scriptreference path="script1.js" />
<asp:scriptreference path="script2.js" />
... etc ...
</scripts>
</compositescript>
</asp:scriptmanager>
サンプルコントロールやコンテンツページ
<asp:scriptmanagerproxy runat="server">
<compositescript>
<scripts>
<asp:scriptreference path="script3.js" />
<asp:scriptreference path="script4.js" />
... etc ...
</scripts>
</compositescript>
</asp:scriptmanagerproxy>
これは正常に動作しますが、効果のVisual Studioのクライアント側のデバッグツールを使用するために、私は」開発中にスクリプトを統合しないことをお勧めします。
私はthusly、<compositescripts>
から<scripts>
にすべてのスクリプトを移動しようとしました:
Private Sub ScriptManager1_PreRender(sender As Object, e As System.EventArgs) Handles ScriptManager1.PreRender
' In development, don't combine scripts
If IsDevelopmentEnvironment() Then
For Each s As ScriptReference In ScriptManager1.CompositeScript.Scripts.Reverse
ScriptManager1.Scripts.Insert(0, s)
Next
ScriptManager1.CompositeScript.Scripts.Clear()
End If
End Sub
これは、のScriptManager自体はスクリプトのために、魔法のように動作します。しかし、ScriptManagerProxyのさまざまなコントロールのスクリプトは表示されませんが、それらはまだ統合されています。デバッグ中は、繰り返し実行したいScriptManager1.Proxiesコレクションを見ることができますが、実際にはコードでアクセスできないように "Friend"です。
開発における統合を無効にすることは、かなり明白な要件のようです。これを行うためのもっと明白な方法がありますか?
解決方法を見つけましたか? – Jacques