- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- errore object not reference on instance of object ajaxToolkit:ReorderList
-
errore object not reference on instance of object ajaxToolkit:ReorderList
Ciao a tutti ho un problema con ReorderList. Praticamente ho una lista di articoli che popolo con un click su un bottone che prende da delle select box dei filtri. C'è anche un bottone ordina in modo random che mette gli elementi della lista in modo random. Ed infine c'è un bottone che salva l'ordinamento. Il click sul bottone random funziona e dopo se effettuo un salvataggio mi salva correttamente.. La lista viene popolata in modo corretto sembra che funzioni tutto eccetto che per il drag and drop che mi genera questo popup: "Reorder failed see details bellow:\r\n\r\n Object reference not set to an instance of an object". Non so più come procedere. Vi allego il codice:
REORDERLIST
<ajaxToolkit:ReorderList ID="reorder_articoli" runat="server" SortOrderField="ordine" AllowReorder="true" DataSourceID="SqlDataSource1" DataKeyField="id_articolo" CssClass="reorderlist" > <DragHandleTemplate> <div style="height: 20px; width: 25px; cursor: pointer;"> <asp:Image ID="Image1" runat="server" ImageUrl="~/admin/img/drag.png" BorderWidth="0" /> </div> </DragHandleTemplate> <ItemTemplate> <asp:Label ID="lb_articolo" runat="server" Text='<%#Eval("id_articolo") %>' /> </ItemTemplate> </ajaxToolkit:ReorderList>
SQL DATA SOURCE
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:mycons %>" ProviderName="<%$ ConnectionStrings:mycons.ProviderName %>" UpdateCommand="UPDATE [AJAX] SET ordine=@ordine WHERE [id_articolo]=@original_id"> <UpdateParameters> <asp:Parameter Name="ordine" Type="Int32" /> <asp:Parameter Name="original_id" Type="string" /> </UpdateParameters> </asp:SqlDataSource>
CLICK SALVA
Protected Sub btn_salva_ordinamento_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_salva_ordinamento.Click Try connessione = DBUtil.GetOdbcConnection connessione.Open() Dim mc As OdbcCommand = New OdbcCommand mc.Connection = connessione rows = DirectCast(Session("rows"), ArrayList) For index As Integer = 1 To rows.Count mc.CommandText = "UPDATE articoli set ordine = " + index.ToString + " where id_articolo = '" + rows(index - 1) + "'" Dim r As Integer = mc.ExecuteNonQuery Next connessione.Close() LogManager.InsertLogAzione("Articolo.Ordinamento", "Ordinamento articoli = Ordinamento degli articoli di " + categorie.getCategoria + " / " + categorie.getGruppo + " / " + categorie.getSottogruppo) Catch ex As Exception ErroreManager.LogErrore(ex) End Try Response.Redirect(Request.Url.ToString) End Sub
CLICK PER ORDINAMENTO RANDOM
Protected Sub btn_random_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_random.Click Try SqlDataSource1.SelectCommand = "SELECT id_articolo,nome, ordine from articoli where id_cat = '" + categorie.getCategoria + "' and id_gru = '" + categorie.getGruppo + "' order by rand()" SqlDataSource1.DataBind() reorder_articoli.DataSourceID = "SqlDataSource1" reorder_articoli.DataBind() For Each r As AjaxControlToolkit.ReorderListItem In reorder_articoli.Items Dim lb_articolo As Label = DirectCast(r.FindControl("lb_articolo"), Label) 'MsgBox(lb_articolo.Text) rows.Add(lb_articolo.Text) Next Session("rows") = rows Catch ex As Exception ErroreManager.LogErrore(ex) End Try End Sub
CLICK FILTRA PER VISUALIZZARE L'ELENCO
Protected Sub lkbtnFiltra_Click(sender As Object, e As EventArgs) Handles lkbtnFiltra.Click If categorie.getCategoria <> "0" And categorie.getGruppo <> "0" Then SqlDataSource1.SelectCommand = "SELECT id_articolo,nome, ordine from articoli where id_cat = '" + categorie.getCategoria + "' and id_gru = '" + categorie.getGruppo + "' order by ordine asc" Else SqlDataSource1.SelectCommand = "SELECT id_articolo,nome, ordine from articoli order by ordine asc" End If SqlDataSource1.DataBind() reorder_articoli.DataSourceID = "SqlDataSource1" reorder_articoli.DataBind() For Each r As AjaxControlToolkit.ReorderListItem In reorder_articoli.Items Dim lb_articolo As Label = DirectCast(r.FindControl("lb_articolo"), Label) 'MsgBox(lb_articolo.Text) rows.Add(lb_articolo.Text) Next Session("rows") = rows End Sub
Vi ringrazio in anticipo
Iulia