2009-07-07 14 views
0

J'ai ce problème .. J'ai un bouton de connexion "Login" et un bouton "UserList" sur un masterpage. Lorsque l'utilisateur est connecté et qu'il clique sur le bouton de lien "UserList", la page UserList qui contient la page de profil mentionnée ci-dessus s'ouvre (cela est déjà fait).LinkButton Click Evénement

mais si l'utilisateur n'est pas connecté et qu'il clique sur "UserList", le clic sur le bouton "Login" doit être appelé. Comment puis-je atteindre cet objectif? S'il vous plaît aider ..

Répondre

0

Essayez ceci:

Dans le code HTML du MasterPage:

Définir un gestionnaire d'événements pour l'événement onclick de LinkButtonLogin:

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

Créer une bouton factice qui est caché de la vue. Ensuite, pour le ModalPopupExtender, changer le TargetControlID du ModalPopupExtender contrôle de LinkButtonLogin à ButtonInvisible. Cela simule efficacement le ModalPopupExtender en étant caché/affichable à partir de votre code.

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

Dans le codebehind du 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"); 
    } 
} 
+0

Se il vous plaît dites-moi comment puis-je faire ce LinkButtonLoginAndUserList_Click (expéditeur d'objet, EventArgs e) .. im nouveau à asp.net .. –

+0

Je pense que votre solution fonctionne .. mais dites-moi juste wat à faire en fonction de ceci: –

+0

mon problème est autre chose. laisse-moi expliquer. pour la connexion j'ai utilisé Ajax Modal Popup Extender. quand je clique sur Login, un petit écran de connexion apparaît. le code est: –

0

Une façon de le faire est d'ajouter une section d'autorisation dans votre fichier web.config qui déclenche la page de connexion lorsque l'utilisateur clique le lien UserList et l'utilisateur n'est pas connecté:

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

Si, si logique pour votre application, vous pouvez même masquer le lien Userlist de i non journalisés n utilisateurs en utilisant le contrôle <asp:LoginView>.

+0

mon problème est autre chose. laisse-moi expliquer. pour la connexion j'ai utilisé Ajax Modal Popup Extender. quand je clique sur Login, un petit écran de connexion apparaît. le code est: où LinkButton1 est le bouton de connexion. maintenant je veux afficher à nouveau cet écran lorsque l'utilisateur clique sur "User List" mais ne s'est pas connecté. –

+0

maintenant quelqu'un peut-il me dire ce que je fais? –

+0

et je ne veux pas cacher le bouton UserList parce qu'il va de pair avec d'autres boutons qui le rendrait impropre. c'est pourquoi je m utilise de cette façon .. –