简单的Gridview拖放重新排序

时间:2012-04-10 14:07:44

标签: c# gridview

我有一个简单的Gridview

<asp:GridView ID="taskGrid" Width="100%" OnSelectedIndexChanged="taskGrid_SelectedIndexChanged"
 AutoGenerateColumns="false" runat="server">
    <EmptyDataTemplate>
        Choose Items from Drop Down Lists
    </EmptyDataTemplate>
    <Columns>
        <asp:TemplateField HeaderStyle-Width="5%" ItemStyle-Width="5%">
            <ItemTemplate>
                <asp:ImageButton CommandName="Select" CommandArgument='<%# Eval("TaskID") %>' 
                                Width="10px" Height="10px" ID="imgRedX" ToolTip='<%# Eval("TaskID") %>' 
                                ImageUrl="~/Images/redX.png"  OnClick="taskGrid_SelectedIndexChanged" 
                                runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField HeaderStyle-Width="47.5%" ItemStyle-Width="47.5%"
                        DataField="ServerName" HeaderText="Deploy Dashboard" />
        <asp:BoundField HeaderStyle-Width="47.5%" ItemStyle-Width="47.5%"
                        DataField="ApplicationName" HeaderText="Deploy Task" />
    </Columns>
</asp:GridView>

我希望能够做到这一点,包括对行的基本拖放重新排序。

我已经查看过很多解决方案,甚至想过重新排序列表,但没有什么能满足我的简单需求。这个Gridview由我填充自定义对象(无Datasource Controls)后面的代码提供支持。

我对 AJAX 感兴趣,但只有在它更新对象时才会感兴趣,而不仅仅是Grid Container

1 个答案:

答案 0 :(得分:0)

考虑到这一点,你必须实施它:

  1. 您需要在服务器端保留订单,以便完整的回发将显示正确的订单

  2. 你需要一些东西(perhaps a jQuery plugin?),它允许你在视觉上交换行

  3. 您需要以能够在客户端找到源行和目标行的键的方式修改脚本(您可以,即将它们包含在gridview中模板内的隐藏字段中,并分配它在RoWDataBound上的价值)

  4. 您需要create a web service or static page method将更改从客户端发送到服务器

  5. tou需要send the changes from the client to the web service or static page method

  6. 您还需要handle ajax errors(转到此帖子的客户端脚本部分):

  7. 所以,不,没有简单的方法可以做到这一点。除非C1或Telerik有一些付费控制权。