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
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
posta il codice...
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
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
ps: Perchè hai due <asp:CommandField ? Ne basterebbe uno con ShowEditButton e ShowDeleteButton a true..
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
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
perchè l'ignoranza è una bestia meno rara di quanto si possa pensare![]()
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
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/