Obtenez de l'élément de liste lorsque le bouton dans la rangée est cliqué
J'ai un ListView
qui crée une table. Chaque ligne de la table a deux boutons Supprimer et Modifier. Je suis de tir cliquez sur un événement pour chaque bouton, mais je ne suis pas sûr de savoir comment obtenir un handle vers les données de la ligne que le bouton a été cliqué.
aspx
<asp:ListView runat="server" ID="usersListView">
<LayoutTemplate>
<table class="table table-striped">
<thead>
<tr>
<th>User Name</th>
<th>Email</th>
<th>Role</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<asp:PlaceHolder runat="server" ID="groupPlaceHolder"/>
</tbody>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder"/>
</tr>
</GroupTemplate>
<ItemTemplate>
<td><%# Eval("user.UserName") %></td>
<td><%# Eval("user.Email") %></td>
<td><%# Eval("roles") %></td>
<td>
<button runat="server" id="modify" class="btn btn-mini" title="Modify" onclick="modify_OnClick">
<i class="icon-edit"></i>
</button>
<button runat="server" id="delete" class="btn btn-mini" title="Delete" onclick="delete_OnClick">
<i class="icon-trash"></i>
</button>
</td>
</ItemTemplate>
</asp:ListView>
aspx.cs
public void delete_Onclick(object sender, EventArgs e) {
}
public void modify_Onclick(object sender, EventArgs e) {
}
OriginalL'auteur bflemi3 | 2012-07-12
Vous devez vous connecter pour publier un commentaire.
Je vais essayer de répondre à la question dans le titre car je ne comprends pas la question elle-même.
Vous pouvez lancer le le
sender
pour le Bouton. Le Bouton deNamingContainer
est leListViewItem
. Vous pouvez l'utiliser pour tous vos autres dans cet élément à l'aide deitem.FindControl("OtherControlID")
.Par exemple;
Vous ne pouvez pas trouver un texte qui n'est pas dans un contrôle serveur. Mais vous pouvez utiliser un
LiteralControl
ouLabel
pour afficher le nom d'utilisateur ou e-mail.Maintenant, vous pouvez utiliser
FindControl
comme indiqué ci-dessus pour obtenir une référence à l'étiquette de code-behind.item
ne devrais-je pas être en mesure d'obtenir le Nom de l'Utilisateur de la colonne pour que la ligne sélectionnée?Vous ne pouvez pas trouver un texte qui n'est pas dans un contrôle serveur. Mais vous pouvez utiliser un LiteralControl ou l'Étiquette à la place. Édité ma réponse.
ne pourrais-je pas simplement ajouter une runat="server" à la
td
et l'accès de cette manière?oh oui, il devrait travailler avec
runat="server"
et ID, je pense que vous pouvez le convertir enHtmlTableCell
et l'utilisationInnerText
ensuite.OriginalL'auteur Rango
Je sais que 2 solutions:
1-le nom de la commande et de l'argument de commande comme ci-dessous
2-vous pouvez utiliser les liens à la place des boutons et envoyer de la chaîne de recherche qui incluent
l'id de votre enregistrement à la même page u,et de prendre de la chaîne de recherche dans
code-behind(chargement de la page) et l'utiliser pour supprimer sqlcommadns ou rediriger vers une autre page
d'édition et enfin la Réponse.Redirect() de nouveau à la même page que vous êtes.
OriginalL'auteur asp.net developer
Vous devriez être en utilisant un GridView puisque les données tabulaires. En tout cas, vous pouvez mettre en œuvre la ItemCommand événement. Le Page MSDN est un exemple.
Vous pouvez personnaliser
CommandName
et laCommandArgument
propriétés d'unButton
de contrôle. Le CommandArgument peut être faite pour contenir une pièce d'identité ou d'un élément d'information pertinent.OriginalL'auteur Candide