0

尝试重新排序 ReorderList 控件中的项目时,我不断收到此错误。

“重新订购失败,请参阅下面的详细信息。

无法访问数据源。它不是数据源,也没有实现 IList。”

我现在正在将数据源设置为 DataTable,并且目前正在尝试使用 ArrayList 数据源,但由于其他地方的互联网上的这篇文章而气馁。该控件存在于更新面板中,但没有订阅其他事件。OnItemReorder 事件应该有什么特别之处吗?只是对它的工作原理感到困惑。

我的问题是,有没有人对这个问题有任何直接的经验?

4

5 回答 5

1

我想到了。我将 DataTable 转换为 ArrayList 然后绑定到控件。感谢大家阅读!

于 2008-09-24T20:10:11.487 回答
1

我得到了同样的错误信息。就我而言,它发生是因为我试图将该SortOrder字段设置为非数字字段。控件只能按类型为整数(或类似)的字段对列表进行排序。不是字符串或日期。

于 2012-09-09T14:41:58.250 回答
0

我过去成功使用过它,没有太多问题(绑定到列表)。你能发布一些你在前端和代码隐藏中的片段吗?

于 2008-09-24T18:00:54.480 回答
0

                        <cc1:ReorderList id="ReorderList1" runat="server" CssClass="Sortables" Width="400" >
                            <ItemTemplate>
                            <div class="sortablelineitem">
                            <a href="#" class="albmCvr" id="song13">
                            <img src="/images/plalbumcvr.jpg" alt="Name of Album" class="cvrAlbum" width="10"
                                height="10" />
                            Song 1 <span>by</span> Artist 1 </a>
                             <asp:ImageButton ID="ImageButton13" runat="server" ImageUrl="/images/btn_play_icon.gif"
                            ToolTip="Play Clip" CssClass="playClip" />
                             </div>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <h1>WHOA THE ITEM IS BEING DRAGGED!!</h1>
                            </EditItemTemplate>
                            <ReorderTemplate>
                            <div style="width:400px; height:20px; border:dashed 2px #CCC;"></div>
                            </ReorderTemplate>
                            <DragHandleTemplate>
                            <div style="height:15px; width:15px; background-color:Black;"></div>
                            </DragHandleTemplate>
                            <EmptyListTemplate>
                            There are no items in this playlist yet...
                            </EmptyListTemplate>
                        </cc1:ReorderList>

                        </ContentTemplate>
                            </asp:UpdatePanel>

是我的前端,而在后端我只是获取一个数据表对象并将其绑定到非回发的 OnLoad ...

ReorderList1.DataSource = ds.Tables[1];
ReorderList1.DataBind();

重新排序项目时是否需要再次设置数据源?

于 2008-09-24T18:13:08.523 回答
0

当我试图排序的表没有分配给 DataKeyField 的初始值时,我发现了同样的错误。当它在我的测试环境中工作时,这让我把头发扯掉了,但当我把它推到现场时却没有。我还注意到它在我的网络服务器控制台上抛出了一个带有相同消息的对话框。这有一个中止/重试/忽略按钮设置,因此有效地杀死了一切。现在这只是粗鲁!

解决方案是在使用控件之前对字段值进行连续编号。

于 2009-07-09T11:38:48.297 回答