向上和向下交换GridView行?

时间:2013-06-21 23:12:15

标签: asp.net gridview

大家好我希望你能帮我这个,我有一个网格视图,每行我都有一个上下按钮现在每个记录都有一个序号(1,2,3 ..等)我想要的当我点击向上或向下时,行将重新排列并且序列号也相应地,我搜索了这个,但是我找到的对我不起作用,你能指点我一些文章或给我一个想法来帮助我解决了这个问题。

非常感谢

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" OnRowCommand="gv_RowCommand">
     <Columns>
         <asp:TemplateField ShowHeader="False">
             <ItemTemplate>
                 <asp:Button ID="btnUp" runat="server" 
                     CausesValidation="false" 
                     CommandName="Up" Text="↑" />
             </ItemTemplate>
         </asp:TemplateField>
         <asp:TemplateField ShowHeader="False">
             <ItemTemplate>
                 <asp:Button ID="btnDown" runat="server" 
                     CausesValidation="false" 
                     CommandName="Down" Text="↓" />
             </ItemTemplate>
         </asp:TemplateField>
     </Columns>
</asp:GridView>

上面的代码段将创建一个包含两列的网格视图,一列用于向上箭头(Alt + 24),另一列用于向下箭头(Alt + 25)。

现在我们需要编写代码来处理单击相应按钮时的向上或向下命令,如下所示:

protected void gvQuestion_RowCommand(Object sender, GridViewCommandEventArgs e)
{
    try
    {
       // Handle the Up command
       if (e.CommandName == "Up")
       {
           // Do logic to move the row up (most likely decrements a sort order value)

           // Rebind grid
       }

       // Handle the Down command
       if (e.CommandName == "Down")
       {
           // Do logic to move the row down (most likely increments a sort order value)

           // Rebind grid
       }
}

填充网格视图的List对象需要具有Sort值(int)或者在数据库中保留值,以便在向上或向下移动行时检索和更新它。