0

我有一个简单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>

我希望能够做到的是将行的基本拖放重新排序。

我查看了很多解决方案,甚至想到了Reorder List,但没有什么真正适合我的简单需求。这Gridview是由我在其中填充自定义对象(否Datasource Controls)的代码提供支持的。

我对AJAX感兴趣,但前提是它也更新了对象,而不仅仅是Grid Container.

4

1 回答 1

0

你必须在考虑到这些事情的情况下实现它:

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

  2. 你需要一些东西(也许是一个 jQuery 插件?)它可以让你在视觉上交换行

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

  4. 您需要创建 Web 服务或静态页面方法以将更改从客户端发送到服务器

  5. 您需要将更改从客户端发送到 Web 服务或静态页面方法

  6. 您还需要处理 ajax 错误(转到本文的客户端脚本部分):

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

于 2012-04-10T14:57:39.700 回答