asp.net 链接按钮单击事件

fcwjkofz  于 2023-01-10  发布在  .NET
关注(0)|答案(2)|浏览(228)

我有这个问题。我有一个“登录”链接按钮和一个“用户列表”链接按钮在一个主页上。当用户登录,他点击“用户列表”链接按钮,用户列表页面有上面提到的主页,打开。(这我已经实现了)。
但如果用户没有登录,他点击“用户列表”,“登录”链接按钮的点击应该调用.我怎么才能做到这一点?请帮助..

nwo49xxi

nwo49xxi1#

一种方法是在web.config文件中添加一个authorization部分,当用户单击UserList链接而用户未登录时,该部分将跳转登录页面:

<location path="UserList.aspx">
    <system.web>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

如果这对您的应用有意义,您甚至可以使用<asp:LoginView>控件对未登录用户隐藏Userlist链接。

js81xvg6

js81xvg62#

试试这个:
主页的HTML中:
LinkButtonLogin的onclick事件定义事件处理程序:

<asp:linkbutton id="LinkButtonLogin" runat="server" 
    text="Login" onclick="LinkButtonLogin_Click"></asp:linkbutton>

创建一个隐藏在视图中的虚拟按钮。然后,对于ModalPopupExtender,将ModalPopupExtender控件的TargetControlIDLinkButtonLogin更改为ButtonInvisible。这实际上将ModalPopupExtender伪装成可在代码中隐藏/显示。

<asp:button id="ButtonInvisible" runat="server" style="display: none;" />

母版页的代码隐藏中:

protected void Page_Load(object sender, EventArgs e)
{
    /*             
        This adds a client-side event to your HyperLink control that mimics
        LinkButtonLogin's onclick event, but ONLY if the current user is not 
        logged in.
    */
    if (!UserIsLoggedIn())
    {
        HyperLinkUserList.Attributes.Add("onclick", 
            "document.getElementById('" + 
                LinkButtonLogin.ClientID + "').click();");
    }
}

protected void LinkButtonLogin_Click(object sender, EventArgs e)
{
    // check if the user is logged in.       
    if (!UserIsLoggedIn())
    {         
        // show the modal login window
        ModalPopupExtender.Show();
    }
    else
    {
        /* 
           This assumes that you always want a user to 
           go to the UserList page upon being logged in.
           You can add some code here to redirect to 
           different pages based on certain criteria.
        */
        Response.Redirect("userlist.aspx");
    }
}

相关问题