6

UpdatePanelに配置するまでは正常に機能するように見えるカスタムサーバーコントロールがあります。UpdatePanel内に入ると、引き続き正常に機能しますが、カスタムサーバーコントロールがポストバックを実行すると、UpdatePanelは完全なポストバックを実行するようになりました。

UpdatePanel内でカスタムサーバーコントロールに非同期ポストバックを実行させるために何かする必要がありますか?

完全なポストバックを引き起こしている関連コードは次のとおりです。ecs:Pagerコントロールは、UpdatePanelにある場合でも、OnCommandイベントで完全なポストバックを発生させるカスタムコントロールです。

<asp:UpdatePanel ID="ClosedIssuesUpdatePanel" runat="server">
    <ContentTemplate>
        <ecs:Pager ID="ClosedIssuesPager" OnCommand="ClosedIssuesPager_Command" runat="server" />
        <asp:Repeater ID="ClosedIssuesRepeater" runat="server">
        ....
        </asp:Repeater>
    </ContentTemplate>
</asp:UpdatePanel>
4

6 に答える 6

1

カスタムコントロールで使用されているコントロールの種類は指定しません。それらはボタンまたはドロップダウンまたは何か他のものですか?ボタンの場合は、UseSubmitBehaviorプロパティがFalseに設定されていることを確認する必要があります。

また、 ScriptManager.RegisterAsyncPostBackControlを介して、コントロールをページのScriptManagerに登録する必要があります。

于 2009-09-02T04:21:24.877 に答える
1

同様の問題が発生し、属性ClientIDMode="AutoID"をユーザーコントロールタグに追加すると問題が解決することがわかりました。

于 2010-12-08T13:54:43.810 に答える
1

更新パネルの更新モードを条件付きにします。

<asp:UpdatePanel ID="ClosedIssuesUpdatePanel" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <ecs:Pager ID="ClosedIssuesPager" OnCommand="ClosedIssuesPager_Command" runat="server" />
        <asp:Repeater ID="ClosedIssuesRepeater" runat="server">
        ....
        </asp:Repeater>
    </ContentTemplate>
</asp:UpdatePanel>
于 2009-08-23T21:46:07.360 に答える
0

申し訳ありません...ページの残りの部分を見ることができません。

ページにもScriptManagerがありますか?

于 2009-06-02T20:06:28.450 に答える
0

カスタムコントロールはINamingContainerを実装していますか?また、ポストバックはそのネーミングコンテナ内の別のコントロールから来ていますか?

UpdatePanelとソース管理の間のネーミングコンテナの境界がこの動作を引き起こす可能性があることがわかりました。

于 2009-08-15T03:42:38.907 に答える
0

AndreasKnudsen が AsyncPostBackTrigger をパネルに追加することを提案するように、1 つのオプションがあります。

<asp:UpdatePanel ID="ClosedIssuesUpdatePanel" runat="server">
  <ContentTemplate>
    <ecs:Pager ID="ClosedIssuesPager" OnCommand="ClosedIssuesPager_Command" runat="server" />
    <asp:Repeater ID="ClosedIssuesRepeater" runat="server">
      ....
    </asp:Repeater>
  </ContentTemplate>
  <Triggers>
    <AsyncPostBackTrigger ControlID="ClosedIssuesPager" EventName="Command" />
  </Triggers>
</asp:UpdatePanel>

別のオプションは、UpdatePanel タグに ChildrenAsTriggers を追加してみることです。

<asp:UpdatePanel ID="ClosedIssuesUpdatePanel" runat="server" ChildrenAsTriggers="true">
于 2009-08-18T20:20:19.383 に答える