好的,我有一个母版页,我有一个linkbutton,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方法会触发!
任何人的想法?
由于
答案 0 :(得分:1)
我已经明白了!
我在这里找到了一个有用的帖子
他们说我最近遇到了一个问题,我试图动态创建一个带有按钮,标签等的面板,并使用AJAX PopupControlExtender弹出它。问题在于,无论何时单击Button,它都不会触发click事件。事件在那里,它只是不会执行。无论如何,长话短说..我不得不将Button的UseSubmitBehaviour更改为false以使其正常工作。
即(Button1.UseSubmitBehavior = false);
希望有人会找到这篇文章并节省一些时间。
所以,我将登录控件的按钮类型更改为链接,它有效!这是我认为的popupextender的某种错误!
答案 1 :(得分: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(); }
现在工作正常.....最终更新的代码...对不起有关......的混乱......