1

好的,我有一个母版页,上面有一个链接按钮、popupcontrolextender、一个作为 popupcontrol 的面板和一个在面板内的登录控件。

当链接按钮被触发时,弹出面板会在内部显示登录控件,如果我尝试登录,则验证方法不会触发。

我已经尝试了许多不同的方法来让它工作,但页面似乎可以回发,但不会触发 onauthenticate 方法。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
         <asp:Panel ID="pnlLogin" runat="server">
        <asp:Login ID="Login1" OnAuthenticate="Login1_Authenticate" runat="server">
        </asp:Login>
        </asp:Panel>
        <asp:LinkButton ID="LinkButton1"  runat="server">LinkButton</asp:LinkButton>
        <cc1:PopupControlExtender ID="PopupControlExtender1" TargetControlID="LinkButton1" Position="Right" PopupControlID="pnlLogin" runat="server">
        </cc1:PopupControlExtender>

        </ContentTemplate>
        </asp:UpdatePanel>

如果我从弹出面板中取出登录控件并将其放在页面上,猜猜看,onauthenticate 方法会触发!

任何想法的人?

谢谢

4

2 回答 2

1

我想通了!

我在这里找到了一个有用的帖子

http://www.brianrudloff.com/

他们说

我最近遇到了一个问题,我试图动态创建一个带有按钮、标签等的面板,并使用 AJAX PopupControlExtender 弹出它。问题是,每当您单击按钮时,它都不会触发单击事件。事件在那里,它只是不会执行。无论如何,长话短说......我不得不将 Button 的 UseSubmitBehaviour 更改为 false 以使其正常工作。

即(Button1.UseSubmitBehavior = false);

希望有人能找到这篇文章并节省一些时间。

因此,我将登录控件的按钮类型更改为链接,它起作用了!!!我认为这是popupextender的某种错误!

于 2009-05-01T09:44:15.700 回答
0
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:Panel ID="pnlLogin" runat="server">

                <asp:Login ID="Login1" OnAuthenticate="Login1_Authenticate" runat="server">
                </asp:Login>
                    <asp:Button runat="server" Text="Button" ID="Unamed2" onclick="Unnamed2_Click" />


            </asp:Panel>
            <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>

            <cc1:ModalPopupExtender PopupControlID="pnlLogin" runat="server" ID="PopupControlExtender1"
                TargetControlID="LinkButton1">
            </cc1:ModalPopupExtender>
       </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Unamed2" />
            <asp:AsyncPostBackTrigger ControlID="Login1" />
        </Triggers>
    </asp:UpdatePanel>

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) { this.PopupControlExtender1.Show(); }

现在工作正常......最终更新的代码......对不起......

于 2009-05-01T08:34:22.090 回答