2011-10-13 90 views
0

我有一个DataList和2个按钮的生命权是数据列表如何从左到右或从右到左更改数据列表图像的顺序?

DataList控件之外:

<asp:DataList ID="dlst" runat="server" RepeatDirection="Horizontal" 
           RepeatColumns="5" CellSpacing="8"> 
     <ItemTemplate> 
        <asp:ImageButton ID="Image" runat="server" ImageUrl='<%#"~/Controls/Showimg.ashx?FileName=" +DataBinder.Eval(Container.DataItem, "FilePath") %>' OnCommand="ImageSelect_Command" CommandArgument='<%# Eval("Id").ToString() +";"+Eval("FilePath")+";"+Eval("Index")+";"+Eval("FileName") %>' /><br /> 
        <asp:Label ID="nlbl" runat="server" Text="Figure"></asp:Label><%# dlst.Items.Count + 1%> 
      </ItemTemplate> 
</asp:DataList> 

按钮:

<asp:ImageButton ID="btnleft" runat="server" ImageUrl="~/images/arrowLBlue.png" 
           ToolTip="Move Item Left" OnClick="btnleft_Click" /> 
<asp:ImageButton ID="btnright" runat="server" ImageUrl="~/images/arrowRBlue.png" 
           ToolTip="Move Item Right" /> 

我上传并结合其做工精细的图像,现在我想从左到右或从右到左移动选定的图像,假设我有图像a1,a2,a3,a4,a5,并且在选择图像a2后点击btnmoveright,图像顺序应该是a1 ,a3,a2,a4,a5现在如果是aga在我点击btnmoveright后选择图像a2,然后顺序应该是a1,a3,a4,a2,a5这样我想移动图像。 如何做到这一点?请有人帮我

回答

1

它看起来像你的datalist的数据源是代表文件路径的字符串的集合。如果是这样,只需将选定的项目与左侧或右侧的项目交换并重新绑定即可。

Public Sub Swap(ByVal obj1 As Object, ByVal obj2 As Object) 
    Dim temp As Object = obj1 
    obj1 = obj2 
    obj2 = temp 
End Sub 

可以存储在视图状态或会话对象的集合回传后,轻松地就重新实例无需重新查询原始来源。

+0

但如何获得下一个项目和上一个项目的选定索引? – Rocky