none
reorderlist dá erro - couldn't find sort field 'prodorder' in bound data RRS feed

  • Pergunta

  • Segui os passos de um tutorial mas mesmo assim está dando o seguinte erro:
    couldn't find sort field 'prodorder' in bound data

    Estou usando List normal, veja o código.

    <ajax:ReorderList ID="ReorderList1" runat="server" DataSourceID="odsListProd" DragHandleAlignment="Left" ItemInsertLocation="Beginning" DataKeyField="prodid" SortOrderField="prodorder" EnableViewState="true" AllowReorder="true">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# HttpUtility.HtmlEncode(Convert.ToString(Eval("prodreferencia"))) %>'></asp:Label>
                    <asp:Label ID="Label2" runat="server" Text='<%# HttpUtility.HtmlEncode(Convert.ToString(Eval("prodnome"))) %>'></asp:Label>
                    <asp:Label ID="Label3" runat="server" Text='<%# HttpUtility.HtmlEncode(Convert.ToString(Eval("prodorder"))) %>'></asp:Label>
                </ItemTemplate>
                <ReorderTemplate>  
                    <asp:Panel ID="Panel2" runat="server" CssClass="reorderCue" />  
                </ReorderTemplate>  
                <DragHandleTemplate>  
                    <div class="dragHandle"></div>  
                </DragHandleTemplate>
            </ajax:ReorderList>
    
    <asp:ObjectDataSource ID="odsListProd" runat="server" TypeName="Onl.DAL" OldValuesParameterFormatString="original_{0}"
                SelectMethod="ListProdutoPorCatSubCat" UpdateMethod="AltCateOrder">
                <SelectParameters>
                    <asp:ControlParameter ControlID="ddlCat" ConvertEmptyStringToNull="true" Name="cateid" PropertyName="SelectedValue" />
                    <asp:ControlParameter ControlID="ddlSubCat" ConvertEmptyStringToNull="true" Name="subcateid" PropertyName="SelectedValue" DefaultValue="0" />
                </SelectParameters>
                <UpdateParameters>
                    <asp:Parameter Name="cateid" />
                    <asp:Parameter Name="subcateid" />
                    <asp:Parameter Name="original_prodid" />
                    <asp:Parameter Name="prodorder" />
                </UpdateParameters>
            </asp:ObjectDataSource>
    public static List<Produto> ListProdutoPorCatSubCat2(int cateid, int subcateid)
            {
                List<Produto> list = new List<Produto>();
                string strSql = "SELECT p.prodid, p.prodreferencia, p.prodnome, p.prodorder FROM produto AS p " +
                    "WHERE p.cateid = ?p1 ";
                // Para subcategoria
                if (subcateid != 0 && subcateid != 9999) strSql += " AND p.subcateid = ?p2 ";
    
                strSql = strSql += " GROUP BY p.prodid ORDER BY p.prodid DESC, p.prodorder ASC;";
    
                using (MySqlConnection MyConn = new MySqlConnection(strConnDb))
                {
                    using (MySqlCommand cmd = new MySqlCommand(strSql, MyConn))
                    {
                        cmd.CommandType = CommandType.Text;
                        cmd.Parameters.AddWithValue("?p1", cateid);
                        cmd.Parameters.AddWithValue("?p2", subcateid);
                        try
                        {
                            MyConn.Open();
                            using (MySqlDataReader rd = cmd.ExecuteReader())
                            {
                                while (rd.Read())
                                {
                                    Produto tmp = new Produto();
                                    tmp.Prodid = Convert.ToInt32(rd[0]);
                                    tmp.Prodreferencia = Convert.ToString(rd[1]);
                                    tmp.Prodnome = Convert.ToString(rd[2]);
                                    if (!Convert.IsDBNull(rd[3])) tmp.Prodorder = Convert.ToInt32(rd[3]);
                                    list.Add(tmp);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        finally
                        {
                            MyConn.Close();
                        }
                    }
                }
                return list;
            }

    Alguém pode me ajudar?


    /* Não esqueça de classificar caso tenha resolvido o problema */

    terça-feira, 20 de agosto de 2013 13:14