9

更新パネル内にユーザーコントロールを配置しました。つまり、このようにします。

<asp:UpdatePanel ID="testupdatepnl" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
                        <uc1:TestControl ID="ctlTest" runat="server" />
        </ContentTemplate>
</asp:UpdatePanel>

これで、このユーザー コントロール内にボタンが配置され、Click と言うようになりました。ボタンクリックでページ全体をポストバックしたい。このようなポストバックトリガーを追加しようとしました

<Triggers>
    <asp:PostBackTrigger ControlID="clickButton" />
</Triggers>

ボタンは usercontrol 内にあるため、このように実行中にエラーが発生しました。

このボタンのポストバックを行う方法はありますか。

4

3 に答える 3

16

<Triggers>HTML から を削除し、これをPageLoadイベントに追加します

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
scriptManager.RegisterPostBackControl(WebUserControl11.FindControl("ButtonId")); 

注:これから学ぶ

于 2012-05-14T06:39:16.933 に答える
0

Ajax Control Toolkit を使用している場合は、次の点にも注意してください。ScriptManager を ToolkitScriptManager に置き換えることができます。

Dim btn As Button = CType(UserControl.FindControl("ButtonID"), Button)        
AjaxControlToolkit.ToolkitScriptManager.GetCurrent(Page).RegisterPostBackControl(btn)
于 2014-08-07T05:08:41.750 に答える
0

トリガーとして使用しているボタンは更新パネル内に配置され、レンダリング後にクライアント ID が変更されるためです。

ユーザーコントロールからボタンにアクセスできるようにし、サーバー側でトリガーを宣言します。

var ClickButton= ctlTest.FindControl("clickButton") as Button;


var trigger = new PostBackTrigger();
trigger.ControlID = ClickButton.UniqueID.ToString();
testupdatepnl.Triggers.Add(trigger);

詳細については、次のスレッドを参照してください LoginView を使用して UpdatePanel 内のボタンをトリガーします

于 2012-05-14T06:19:20.923 に答える