J'ai un contrôle datalist qui contient certaines commandes (ex: bouton). Je veux écrire du code dans l'événement click du bouton qui est dans le contrôle datalist. Mais dans le code derrière la page je ne peux pas voir le nom des contrôles dans Datalist. Comment puis-je résoudre ce problème?Utilisation de l'événement de contrôle sous datalist
2
A
Répondre
2
Si vous ne voulez pas ajouter un gestionnaire à tous les événements de l'enfant, vous pouvez ajouter votre code à la place à la OnItemCommand.
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<asp:Button ID="btnDoSomething" Runat=server CommandName="DoSomething"
CommandArgument="<%# DataBinder.Eval(Container.DataItem, "SomeID")
%>"></asp:LinkButton>
</ItemTemplate>
</asp:DataList>
protected void DataList1_ItemCommand(
object source, DataListCommandEventArgs e)
{
if (e.CommandName == "DoSomething")
{
//Do stuff
}
}
3
Attachez votre événement aux contrôles de l'événement OnItemCreated du datalist.
RÉVISÉ POUR AJOUTER EXEMPLE
private void DataList_ItemCreated(object sender,
System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Button btn = (Button)e.Item.FindControl("btnWhatever");
if (btn != null) btn.Click += new EventHandler(SomHandler);
}
}
C'est ce que je veux. Merci – mavera