首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax工具包控件Reorderlist未正确重新排序

Ajax工具包控件Reorderlist未正确重新排序
EN

Stack Overflow用户
提问于 2012-11-24 19:47:45
回答 1查看 464关注 0票数 0

在asp.net ajax工具包控件中,我使用了reorderlist。

当我第一次重新排序时,它工作得很好,但以后就不行了。

下面是我的代码..

代码语言:javascript
复制
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
    <asp:ReorderList ID="rlItemList" DragHandleAlignment="Left" PostBackOnReorder="false"
        DataKeyField="VentureCategoryID" runat="server" SortOrderField="DisplayOrder"
        OnItemReorder="rlItemList_ItemReorder" AllowReorder="true" ClientIDMode="AutoID">
        <DragHandleTemplate>
            <div class="dragHandle">
            </div>
        </DragHandleTemplate>
        <ItemTemplate>
            <asp:Label ID="lblVentureCategoryID" runat="server" Visible="false" Text='<%#Eval("VentureCategoryID") %>' />
            <asp:Label ID="lblCategoryName" runat="server" Text='<%#Eval("CategoryName") %>' />
            <asp:Label ID="lblIsActive" runat="server" Text='<%#Eval("IsActive") %>' />
            <asp:Label ID="lblDisplayOrder" runat="server" Visible="false" Text='<%#Eval("DisplayOrder") %>' />
        </ItemTemplate>
        <ReorderTemplate>
            <asp:Panel ID="Panel2" runat="server" CssClass="reorderCue" />
        </ReorderTemplate>
    </asp:ReorderList>

后面的代码是..

代码语言:javascript
复制
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            List<VentureCategory> VenList = VentureCategory.GetAll();
            rlItemList.DataSource = VenList;
            rlItemList.DataBind();

        }
    }

    protected void rlItemList_ItemReorder(object sender, ReorderListItemReorderEventArgs e)
    {
        var nId = e.NewIndex + 1;
        var oId = e.OldIndex + 1;
        List<VentureCategory> VenCatList = VentureCategory.GetAll();
        //foreach (var item in VenCatList)
        //{
        //    item.DisplayOrder = 9;
        //    VentureCategory.Update(item);
        //}
        int OldCategoryid = Convert.ToInt32(rlItemList.DataKeys[e.OldIndex].ToString());
        int NewCategoryid = Convert.ToInt32(rlItemList.DataKeys[e.NewIndex].ToString());

        var sortedList = VenCatList.OrderBy(sl => sl.DisplayOrder);
        var Count = 1;
        Label CatId = e.Item.FindControl("lblVentureCategoryID") as Label;
        var newcatId = Convert.ToInt32(CatId.Text);
        foreach (var item in sortedList)
        {
            if (oId > nId && Count >= nId && oId >= Count)
                item.DisplayOrder = Count + 1;
            else if (nId > oId && nId >= Count && Count >= oId)
                item.DisplayOrder = Count - 1;

            if (item.VentureCategoryID == newcatId)
                item.DisplayOrder = nId;
            VentureCategory.Update(item);
            Count++;
        }
    }

有人能帮我提前道谢吗?

EN

回答 1

Stack Overflow用户

发布于 2012-11-24 20:24:43

检查表是否具有相同的定义和数据类型

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13540902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档