11
votes

Comment utiliser le bouton dans le contrôle de répéteur?

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>


1 commentaires

Comment ajoutez-vous des articles à la source de données du répéteur (et quand)?


7 Réponses :


5
votes

utilise usingmitbehavior = "false" Cette propriété que vous avez utilisée n'est pas présente avec le bouton Image Avez-vous surveillé la classe image-image et ajout de cette propriété.


0 commentaires

-2
votes

Si vous ajoutez des articles du serveur, essayez d'attribuer un ID unique à chaque imageButton


3 commentaires

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



-1
votes

Définir la page EnableventValidation = "FALSE".


1 commentaires

Ceci est une option de dernier recours - l'événementValidation empêche toute sorte que la sorte de mal soit soumis à votre site.



2
votes

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


0 commentaires

1
votes

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;
    }

}


0 commentaires

1
votes

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. xxx


0 commentaires

4
votes
<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();

        }
    }

0 commentaires