LinkButton点击事件

问题描述 投票:0回答:2

我有这个问题.. 我在一个主页上有一个“登录”链接按钮和一个“用户列表”链接按钮。当用户登录后,单击“UserList”链接按钮,将打开具有上述母版页的 UserList 页面。(我已经实现了)。

但是如果用户未登录并单击“UserList”,则应调用“Login”链接按钮的单击。我怎样才能做到这一点?请帮忙..

asp.net events click linkbutton
2个回答
0
投票

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

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

如果对您的应用程序有意义,您甚至可以使用

<asp:LoginView>
控件对未登录的用户隐藏用户列表链接。


0
投票

试试这个:

MasterPage 的 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;" />

MasterPage的代码隐藏中:

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");
    }
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.