2009-10-26 6 views
1

Pour moi, Dans la page:Passing valeurs gridview (données) aux champs TextBox

1) I have a gridview with the select hyperlink in it. The gridview data is from the SQLDataSource. 

2) And, I also have a few textboxes (abt 5) - not in the gridview. 

Ce que je voudrais faire est d'utiliser la sélection hyperlink pour sélectionner le row que je veux modifier. Et quand je clique select, le data dans le row devrait sortir à leur textboxes respectifs. Comment puis-je faire cela?

Répondre

0

Les vues en grille ont une prise en charge de l'édition en ligne, vous pouvez activer cette fonctionnalité en définissant la propriété AutoGenerateEditButton sur true. Vous devez spécifier le nom d'une procédure stockée ou d'une requête SQL dans la propriété UpdateCommand, ceci est utilisé pour mettre à jour les données dans la base de données sous-jacente.

De MSDN:

 <asp:gridview id="CustomersGridView" 
     datasourceid="CustomersSqlDataSource" 
     autogeneratecolumns="true" 
     autogeneratedeletebutton="true" 
     autogenerateeditbutton="true" 
     datakeynames="CustomerID" 
     runat="server"> 
     </asp:gridview> 

     <asp:sqldatasource id="CustomersSqlDataSource" 
     selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" 
     updatecommand="Update Customers SET [email protected], [email protected], [email protected], [email protected], [email protected] WHERE (CustomerID = @CustomerID)" 
     deletecommand="Delete from Customers where CustomerID = @CustomerID" 
     connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 
     runat="server"> 
     </asp:sqldatasource> 

Voir here pour le code exemple complet.

0

événement Wireup OnSelectedIndexChanged:

ASPX:

<asp:GridView id="gvTest" OnSelectedIndexChanged="gvTest_SelectedIndexChanged" 
..........></asp:GridView> 

<asp:TextBox id="text1" runat="server"/> 

code:

protected void gvTest_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //get currently selected row 
    var r =gvTest.Rows[gvTest.SelectedIndex]; 

    //THIS WAY YOU CAN GET TEXT FROM ALL COLUMNS 
    text1.Text = r.Cells[r.Cells.Count - 1].Text; 
} 
0
protected void gvofertas_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    try 
    { 
     gvofertas.SelectedIndex = Convert.ToInt32(e.CommandArgument); 
     switch (e.CommandName) 
     { 

      case "ELIMINAR": 
       { 
        //lblSolEliminar.Text = "Usuario: " + Convert.ToString(gvCorreos.DataKeys[gvCorreos.SelectedIndex].Values["etspcpusrn"]); 
        mpeEliminar.Show(); 
        break; 
       } 
      case "EDITAR": 
       { 
        Limpiar(); 
        Session["NROOFERTAACTUALIZA"] = Convert.ToString(gvofertas.DataKeys[gvofertas.SelectedIndex].Values["efophcodi"]).Trim(); 
        txtDescripcion.Text = Convert.ToString(gvofertas.DataKeys[gvofertas.SelectedIndex].Values["efophdesc"]).Trim(); 
        StartDate.Text= Convert.ToDateTime(gvofertas.DataKeys[gvofertas.SelectedIndex].Values["efophfini"]).ToShortDateString(); 
        EndDate.Text = Convert.ToDateTime(gvofertas.DataKeys[gvofertas.SelectedIndex].Values["efophffin"]).ToShortDateString(); 
        txtRango1Localidades1Agregar.Text = Convert.ToString(gvofertas.DataKeys[gvofertas.SelectedIndex].Values["efophloci"]).Trim(); 
        txtRango2Localidades1Agregar.Text = Convert.ToString(gvofertas.DataKeys[gvofertas.SelectedIndex].Values["efophlocf"]).Trim(); 
        this.mpeAgregar.Show(); 
        BtnGuardar2.Text = "Actualizar"; 
        txtDescripcion.Focus(); 
        break; 
       } 

    } 
    catch (Exception ex) 
    { 

     ucMsje.RegistrarMensajeCliente("dvMsjeError", F.m_strImagenError, ex.Message); 
    } 
+0

S'il vous plaît garder le code source en anglais et expliquer votre réponse. Juste poster un tas de code n'est pas un moyen approprié de répondre. – foobar

Questions connexes