J'utilise ASP.NET 3.5 avec C #. Je veux appeler le bouton Cliquez sur l'événement à l'intérieur de la commande de répéteur.
<asp:Repeater ID="rptFriendsList" runat="server" onitemcommand="rptFriendsList_ItemCommand"> <ItemTemplate> <asp:ImageButton ID="btnSave" runat="server" ImageUrl="~/Contents/Images/save_button.png" CommandName="Schedule" UseSubmitBehavior="False" /> </ItemTemplate> </asp:Repeater>
7 Réponses :
Si vous ajoutez des articles du serveur, essayez d'attribuer un ID unique à chaque imageButton P>
S'ils sont dans un répéteur, ils se procurent un peu de valeur par défaut, dans ce cas, quelque chose comme: rptfriendslist_itemcommand_btnsave)
Et si la clientIdMode est définie sur statique?
Alors c'est une question différente
Définir la page EnableventValidation = "FALSE". P>
Ceci est une option de dernier recours - l'événementValidation empêche toute sorte que la sorte de mal soit soumis à votre site.
Cela se produit également lorsque vous avez attribué la DataSource et les données liés à votre répéteur dans l'événement ONLOWLOP plutôt que surNIT P>
J'ai utilisé ce code ci-dessous et ça marche ok Utilisez ce code ci-dessous dans la page .ASPX
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) { switch (e.CommandName) { case "Edit": // Do some stuff when the Edit button is clicked. break; // Other commands here. default: break; } }
Vous ne pouvez pas utiliser le bouton, car le bouton Créer un message sur le bouton Cliquez sur CLIQUER et sur le bouton de répéteur appelé!
Mais, si vous souhaitez utiliser ASP: Bouton à la place de ASP: LinkButton, vous devez définir les propriétés utilisations de Bouton. faux. Ses moyens, bouton ne font pas de post-plan. p>
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_OnItemCommand" DataSourceID="SqlDataSource1"> <ItemTemplate> key1: <asp:Label ID="key1Label" runat="server" Text='<%# Eval("key1") %>'></asp:Label><br /> key2: <asp:Label ID="key2Label" runat="server" Text='<%# Eval("key2") %>'></asp:Label><br /> key3: <asp:Label ID="key3Label" runat="server" Text='<%# Eval("key3") %>'></asp:Label><br /> <asp:TextBox ID="col1" runat="server" Text='<%# Eval("col1") %>'></asp:TextBox> <asp:TextBox ID="col2" runat="server" Text='<%# Eval("col2") %>'></asp:TextBox> <br /> <asp:linkbutton ID="Linkbutton1" commandname="Update" runat="server" text="Update" CommandArgument='<%# Eval("key1") +"|"+Eval("key2")+"|"+ Eval("key3") %>' /> <asp:linkbutton ID="Linkbutton2" commandname="Cancel" runat="server" text="Cancel" /> </ItemTemplate> protected void Repeater1_OnItemCommand(object source, RepeaterCommandEventArgs e) { if (e.CommandName == "Update") { string col1 = ((TextBox)e.Item.FindControl("col1")).Text; string col2 = ((TextBox)e.Item.FindControl("col2")).Text; string allKeys = Convert.ToString(e.CommandArgument); string[] arrKeys = new string[2]; char[] splitter = { '|' }; arrKeys = allKeys.Split(splitter); SqlDataSource1.UpdateParameters["col1"].DefaultValue = col1; SqlDataSource1.UpdateParameters["col2"].DefaultValue = col2; SqlDataSource1.UpdateParameters["key1"].DefaultValue = arrKeys[0]; SqlDataSource1.UpdateParameters["key2"].DefaultValue = arrKeys[1]; SqlDataSource1.UpdateParameters["key3"].DefaultValue = arrKeys[2]; SqlDataSource1.Update(); Repeater1.DataBind(); } }
Comment ajoutez-vous des articles à la source de données du répéteur (et quand)?