2

.ascx ページで使用する必要がある Web サービスを作成しました。これを追加することはできません:

<asp:ScriptManager ID="OWUScripts" runat="server">
    <Services>
        <asp:ServiceReference Path="~/OWUDashboard.asmx" />
    </Services>
</asp:ScriptManager>

その理由は、ページに複数の ScriptManagers があるからです。そこで、少し調べてみたところ、これを Page_Load イベントに追加する必要があることがわかりました...

Dim myScriptManager As ScriptManager = ScriptManager.GetCurrent(Me.Page)

Dim objServiceReference As ServiceReference = New ServiceReference()
objServiceReference.Path = "~/MyService.asmx"
myScriptManager .Services.Add(objServiceReference)

しかし、既に 1 つのプリセット (スキンとすべて) があるため、Page_Load イベントにアクセスできません。<script runat="server"></script>

ただし、「宣言が必要です」というエラーが表示されます...数行を取り出したところ、Me.Pageが見つからないと言っているようでした(またはnullになっていました)

私が間違っていることについての洞察はありますか?

<script runat="server">私と同じようにMe.Page にアクセスできますか? それとも別の方法でアクセスする必要がありますか?

4

1 に答える 1

5

そのような場合に備えて、宣言的に参照を追加するために使用できる ScriptManagerProxy クラスがあります。「親」ページに ScriptManger がすでに定義されている場合は常に、プロキシ クラスが使用されます。通常の ScriptManager と同じ方法で ScriptManagerProxy を操作します。プロキシ クラスの詳細については、こちらを参照してください。

マークアップの例:

<asp:ScriptManagerProxy runat="server" ID="Manager">
<Scripts>
    <asp:ScriptReference Path="~/JScript.js" />
</Scripts>
</asp:ScriptManagerProxy>
于 2009-06-17T20:47:45.530 に答える