Domanda

Sto avendo difficoltà a ottenere una casella di conferma JavaScript da ASP: Buttonfield:

Questo è il codice originale della GridView, tuttavia Buttonfield non sembra accettare "OnClientClick"

<asp:GridView ID="gvNavios" runat="server"  onrowcommand="gvNavios_RowCommand">
<Columns>
    <asp:ButtonField runat="server" ButtonType="Button" Text="delete" CommandName="Eliminar" />
</Columns>
</asp:GridView>
.

Così ho provato ASP: LinkButton invece:

<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
     <asp:LinkButton ID="eliminar" CommandName="delete" runat="server" Text="delete"/>
</ItemTemplate>
</asp:TemplateField>
.

Comunque in questo modo non riesco a ottenere quale riga è stata cliccata come E.COMMANDARGMENT non è riempito

Il codice C # dietro:

 protected void gvNavios_RowCommand(object sender, GridViewCommandEventArgs e)
{

    string currentCommand = e.CommandName;
    int currentRowIndex = Int32.Parse(e.CommandArgument.ToString());
    string imo = gvNavios.Rows[currentRowIndex].Cells[3].Text;

    if (currentCommand.Equals("delete"))
    {
        eliminarNavio(imo);
        Response.Redirect(Request.RawUrl);
    }
.

}

Apprezzo uno dei seguenti: Inserire JavaScript in ASP: pulsante o ottenere il numero di riga da LinkButton.

È stato utile?

Soluzione

È necessario aggiungere il commandargument al linkButton e fornire un po 'di indice (l'ID oggetto sarà il migliore).

<asp:LinkButton ID="eliminar" CommandArgument='<%# Eval("ID") %>' CommandName="delete" runat="server" Text="delete"/>
.

Altri suggerimenti

Porque No Usas Un TemplateField?, Creo Es Mas Facil

Perché non usare un templatefield? ¿

Dentro il RowDataBound :

Prima crea un TemplateField, quindi all'interno del Templatefield Inserisci un imagebutton, chiamalo img_borrar (commandname).

Poi nel RowCommand, trovalo, impostare l'indice (Commandargument), impostare un po 'di stile e la comodità Java:

If e.Row.RowType = DataControlRowType.DataRow Then
                Dim boton_borrar As ImageButton = CType(e.Row.Cells(1).FindControl("img_borrar"), ImageButton)
                boton_borrar .CommandArgument = e.Row.RowIndex.ToString
                boton_borrar .Style("cursor") = "hand"
                boton_borrar .Attributes.Add("onClick", "return window.confirm(' ¿Desea borrar este registro? ');")


            End If
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top