1

Async パネルのフォームビュー内のユーザー コントロール内から JavaScript イベントを登録する際に厄介な問題が発生しています。フォームビューに移動し、ボタンを押して挿入モードに切り替えます。これは、ページ全体のポストバックを行いません。挿入モード内で、ユーザー コントロールの page_load イベントは、ScriptManager.RegisterStartupScript を使用して JavaScript イベントを登録する必要があります。

ScriptManager.RegisterStartupScript(base.Page, this.GetType(), ("dialogJavascript" + this.ID), "alert(\"Registered\");", true);   

しかし、HTML ソースを見ると、イベントはありません。したがって、アラート ボックスは表示されません。これは私の実際の aspx ファイルの設定です:

<igmisc:WebAsyncRefreshPanel ID="WebAsyncRefreshPanel1" runat="server">
    <asp:FormView ID="FormView1" runat="server" DataSourceID="odsCurrentIncident">
        <EditItemTemplate>
            <uc1:SearchSEDUsers ID="SearchSEDUsers1" runat="server" />
        </EditItemTemplate>
        <ItemTemplate>
            Hello
            <asp:Button ID="Button1" runat="server" CommandName="Edit" Text="Button" />
        </ItemTemplate>
    </asp:FormView>
</igmisc:WebAsyncRefreshPanel>

ここで何が欠けているのか誰にも分かりませんか?

4

3 に答える 3

1

RegisterClientSideScriptを使用してみましたか?スクリプトのキーはIsClientSideScriptRegisteredでいつでもチェックして、複数回登録しないようにすることができます。

非同期パネルが部分的なページを過去に実行していると想定していますが、これはmechansimが起動スクリプトを再生成するトリガーにはなりません。おそらく、ASP.NetページのライフサイクルとCLRをよく理解している人なら、これらの空白を埋めることができます。

于 2008-09-24T14:23:28.277 に答える
1

私にとってはうまくいきます。 resizeChartMid()関数名です。

ScriptManager.RegisterStartupScript(this, typeof(string), "getchart48", "resizeChartMid();", true);
于 2012-11-05T18:44:20.217 に答える
0

これを試してください、私は同じ問題を抱えています

ScriptManager.RegisterClientScriptBlock(MyBase.Page, Me.[GetType](),
                     ("dialogJavascript" + this.ID), "alert(\"Registered\");", True)

これは私のために働いた!

于 2009-09-27T03:51:40.207 に答える