使用asp.net在没有刷新页面的情况下在ajax更新面板中登录控件

时间:2011-08-20 15:15:02

标签: visual-studio-2010 asp.net-ajax

我在主页面的登录视图控件中有登录状态,当我点击登录时,我需要在不刷新页面的情况下显示ajax更新面板中的登录控件。

当加载默认页面时,当我点击登录状态时,页面将指向登录页面,而不是更新更新面板。

有谁可以帮我解决这个问题?

以下是Default.aspx的代码:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:LoginView ID="LoginView1" runat="server">
                <AnonymousTemplate>
                    <asp:LoginStatus ID="LoginStatus1" runat="server" 
                        LogoutAction="RedirectToLoginPage" LogoutPageUrl="~/Login.aspx" />
                </AnonymousTemplate>
            </asp:LoginView>
            <asp:Login ID="Login1" runat="server">
            </asp:Login>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Login1" />
        </Triggers>
    </asp:UpdatePanel>

以下是Default.aspx.vb的代码:

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.load
 If Not Me.IsPostBack Then
        UpdatePanel1.Visible = True
    Else
        UpdatePanel1.Visible = False
    End If
 End Sub

1 个答案:

答案 0 :(得分:0)

猜猜在web配置中有一个选项,您可以在使用asp.net的登录控件时指定登录URL。确保您的网络配置中没有这样的内容。

不要让更新面板不可见。不要在代码后面的updatepanel中做任何事情。 UpdatePanel本身不可见,它只是一个帮助您获得异步回发的容器。

相反,保持login1隐藏,当您单击登录状态时,会在您的代码后面的登录状态按钮的.click事件中显示它。

或者只需将登录控件放在div或面板中,然后隐藏并显示此面板。

相关问题