Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    135

    datakeyname in gridview editabile con arraylist come datasource

    ciao a tutti,
    il titolo dice già tutto immagino..
    dovrei usare un arraylist come datasource in una gridview editabile, qualcuno l'ha mai fatto? cosa inserisco nel datakeyname per usare i metodi rowUpdating e rowDeleting?
    grazie in anticipo

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    135

    scusa il ritardo

    Allora ho parzialmente risolto convertendo il mio arraylist in DataTable, ora il problema è che cliccando su modifica, non si apre l'item giusto, mi sai spiegare il perchè?

    codice aspx:

    <asp:GridView ID="GridView1" runat="server" ShowFooter="True" AutoGenerateColumns="False" DataKeyNames="id" >
    <Columns>
    <asp:TemplateField HeaderText="Name">
    <ItemTemplate>
    <%#Eval("name").ToString%>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="txtEditName" size="6" runat="server" Text='<%#Eval("name").ToString%>'></asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Age">
    <ItemTemplate>
    <%#Eval("age").ToString%>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="txtEditAge" size="6" runat="server" Text='<%#Eval("age").ToString%>'></asp:TextBox>
    </EditItemTemplate>
    <FooterTemplate>
    <asp:TextBox id="txtAddNome" size="10" runat="server"></asp:TextBox>
    <asp:TextBox id="TextBox1" size="10" runat="server"></asp:TextBox>
    <asp:Button id="btnAdd" runat="server" Text="Aggiungi" CommandName="Add"></asp:Button>

    </FooterTemplate>
    </asp:TemplateField>
    <asp:CommandField ShowEditButton="true" UpdateText="Modifica" HeaderText="Modifica" />
    <asp:CommandField ShowDeleteButton="true" DeleteText="Elimina" HeaderText="Elimina" />
    </Columns>

    </asp:GridView>

    codice Vb:
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim arrList As ArrayList = New ArrayList()
    Dim dt As New DataTable()
    Dim intCnt As Integer = 0

    dt.Columns.Add(New DataColumn("Name", System.Type.GetType("System.String")))
    dt.Columns.Add(New DataColumn("Age", System.Type.GetType("System.String")))
    dt.Columns.Add(New DataColumn("id", System.Type.GetType("System.String")))

    arrList.Add(New String() {"Jacob", "34", "0"})
    arrList.Add(New String() {"Hima", "28", "1"})
    arrList.Add(New String() {"Vamshi", "34", "2"})
    arrList.Add(New String() {"Pinal", "30", "3"})

    For Each item As Object In arrList
    Dim dr As DataRow
    Dim arrItem As String() = DirectCast(item, String())
    dr = dt.NewRow()
    dr("Name") = arrItem(0)
    dr("Age") = arrItem(1)
    dr("Id") = arrItem(2)
    dt.Rows.Add(dr)
    Next

    GridView1.DataSource = dt
    GridView1.DataBind()

    End Sub

    Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
    GridView1.EditIndex = e.NewEditIndex
    GridView1.ShowFooter = False
    End Sub

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ps: Perchè hai due <asp:CommandField ? Ne basterebbe uno con ShowEditButton e ShowDeleteButton a true..

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    135

    grazie della risposta

    adesso devo far si che modificando o cancellando le righe della datatable si aggiorni l'arraylist che la popola, faccio delle prove e in caso non ci riuscissi faccio un up al post.
    Davvero grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    135
    perchè l'ignoranza è una bestia meno rara di quanto si possa pensare

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Riscrivo il mio post (che era tre post sopra) con una correzione:

    codice:
    ASPX:
        <asp:GridView ID="GridView1" Width="50%" runat="server" AutoGenerateColumns="true">
                <Columns>
                    <asp:CommandField EditText="Edita" ShowEditButton="true" />
                </Columns>
        </asp:GridView>
    
    
    
    VB:
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            BindGrid()
        End Sub
    
    
        Private Sub BindGrid()
            Dim dt As New DataTable
    
            ' Colonne
            Dim c As New DataColumn("Colonna 1")
            dt.Columns.Add(c)
            Dim d As New DataColumn("Colonna 2")
            dt.Columns.Add(d)
    
            ' Righe
            Dim r1 As DataRow = dt.NewRow
            r1.Item(0) = "Pippo"
            r1.Item(1) = "1"
            dt.Rows.Add(r1)
    
            Dim r2 As DataRow = dt.NewRow
            r2.Item(0) = "Pluto"
            r2.Item(1) = "2"
            dt.Rows.Add(r2)
    
            Dim r3 As DataRow = dt.NewRow
            r3.Item(0) = "Paperino"
            r3.Item(1) = "3"
            dt.Rows.Add(r3)
    
            Dim r4 As DataRow = dt.NewRow
            r4.Item(0) = "Topolino"
            r4.Item(1) = "4"
            dt.Rows.Add(r4)
    
            GridView1.DataSource = dt
            GridView1.DataBind()
        End Sub
    
        Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GridView1.RowCancelingEdit
            Response.Write("Modifica della riga " & e.RowIndex.ToString & " annullata.")
            BindGrid()
        End Sub
    
        Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
            GridView1.EditIndex = e.NewEditIndex
            BindGrid()    '<----
        End Sub
    
        Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating
            '
        End Sub

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.