Comment faire des double-cliquez sur & seul événement click pour le bouton lien de Asp.net contrôle?
De considérer les éléments suivants:
protected void dgTask_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton btn = (LinkButton)e.Row.Cells[4].FindControl("lnkBtnEdit");
btn.Attributes.Add("onclick", "return Test();");
}
}
Au lieu d'un seul clic, comment puis-je faire un double clic en cliquant sur le bouton lien?
Édité
J'ai essayé avec la solution présentée par *competent_tech* mais le problème est que dans ce cas il va intercepter les seul clic.
J'ai besoin de faire une opération sur simple clic, et quelque chose d'autre sur le double clic. S'il vous plaît aider moi.
Grâce
Vous devez vous connecter pour publier un commentaire.
Que vous avez à faire quelque chose comme ça.
Code derrière.
puis dans votre code javascript que vous aurez besoin de définir le OnClick fonction comme ceci
Vous pouvez soit mettre l'javascript directement dans votre .aspx fichier ou ajouter dynamiquement lorsque vous ajoutez le LinkButton à la page. Si vous avez besoin d'effectuer une action sur le côté serveur lorsque l'utilisateur seule clique ou double clics, vous pouvez utiliser l' __doPostBack méthode. Voir ici pour plus d'infos à ce sujet.
Le problème avec mon approche est que l'utilisateur de toujours avoir à attendre que la totalité de rappel de temps avant leur unique, cliquez sur action est effectuée. Je ne vois pas de moyen de contourner ce problème tant que vous êtes en utilisant un seul clic/double-cliquez pour distinguer ce que l'utilisateur veut. Si vous trouvez ce retard trop grand d'un problème, vous pouvez toujours essayer quelque chose comme le clic ou maj+clic pour basculer entre les actions. Il ne serait probablement pas aussi intuitif de cette façon, mais vous savez immédiatement ce que l'utilisateur veut et a pu répondre immédiatement au lieu d'attendre pour voir si l'utilisateur clique une deuxième fois.
Laissez-moi savoir si vous avez des questions.
Réponse courte: Non, vous ne pouvez pas le faire.
Réponse longue: Vous ne pouvez pas le faire parce que d'un double-clic est effectivement en 2 clics. Il ya beaucoup de hacks (comme minuterie approches fondées sur) que vous pouvez trouver qui tentent de le faire, mais si vous le choisissez, sachez que c'est toujours un non-fiables et des comportements à risque.
Comme par quirksmode.org, voici la séquence des événements pour une double cliquez sur:
Même cet ordre n'est pas cohérente entre les navigateurs. Il est simple, pas de moyen fiable de détecter à la fois cliquer et double-cliquez sur le même élément.
Citant quirksmode.org:
Et par jQuery:
Votre meilleur pari est de redessiner le flux de travail de sorte que vous utilisez autre chose (plutôt que sur le nombre de clics) à compter.
Essayez d'utiliser
ondblclick
au lieu deonclick
.Pour que cela fonctionne correctement, vous devez également intercepter onclick et retourner false afin que la navigation automatique n'a pas lieu:
<a href
dans le code html généré, même si vous ne spécifiez une URL. Le comportement par défaut du navigateur, lorsque vous cliquez sur un<a href
est de naviguer dans le href. Toutefois, si vous retourne la valeur false à partir de l'événement onclick, le navigateur ne sera pas naviguer dans le href. Donc, le code annule la norme de comportement de navigation pour de simples clics afin de permettre à votre double-cliquez sur le code à exécuter.http://jsfiddle.net/XfJDK/2/
Essayez d'obtenir le nombre de clic et essayez d'effectuer une opération.je pense que ondbclick peuvent être mises en œuvre à l'aide de javascript.
EDIT:
Ce competent_tech dit est juste.vous pouvez effectuer cette logique
Coller ce code dans Page_Load il travaillera
LinkButton1.Attributes.Add("ondblclick","yourfunction()");
LinkButton1.Attributes.Add("onclick", @"return false;");
J'ai mis l'exemple de code javascript ici.
http://jsbin.com/ubimol/2/edit
Html:
Javascript:
Par l'introduction de la deuxième bouton avec la même valeur, la solution est stable, mais ont besoin d'un codage.
Vous pouvez utiliser Jquery événements tels que donnés ici
Faire un lien ouvert sur le double clic
La Documentation peut être trouvée ici
http://api.jquery.com/dblclick/
Dans les essais de l'exemple ci-dessus, j'ai trouvé que le formulaire de la
GridView
est contenue dans le envoyée à chaque fois que vous cliquez sur leLinkButton
. Pour contourner cela, j'ai utilisé le code suivant.Le script suivant va compter à chaque fois que l'utilisateur clique sur le lien.
Nous annuler l'envoi du formulaire afin que nous puissions suivre le nombre de fois que l'utilisateur clique sur le lien. Cela peut causer des problèmes avec votre page, mais cela semble être la raison pour laquelle le double-clic ne peut pas être suivi.
J'ai créé un modèle de champ dans un
GridView
de contrôle pour afficher à la fois la simple clic et double-cliquez sur les boutons.Dans le code-behind de la page, nous ajoutons la
javascript
code d'un seul clic, et lejavascript
code pour effectuer un double clic. Veuillez noter: la Cellule de référence est fixée à 2 alors que dans votre exemple, il était de 4, en raison du nombre limité de colonnes que j'ai utilisé lors de mes tests.Cela devrait vous permettre de capturer double clique sur certains liens et unique clics sur les autres. Cependant, comme mentionné ci-dessus, le formulaire de soumission est maintenant annulée et vous devrez trouver une autre méthode pour soumettre vos données si vous utilisez le code ci-dessus.