大家好,我希望你能帮助我,我有一个网格视图,在每一行我都有一个向上和向下按钮现在每条记录都有一个序列号(1、2、3..等)我想要的是当我单击向上或向下,行将重新排列,序列号也相应地重新排列,我搜索了这个,但我发现对我不起作用,你能给我一些文章或给我一个想法来帮助我解决这个问题.
多谢
尝试以下操作:
<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 对象需要有一个排序值 (int) 或将该值持久保存在数据库中,以便在行向上或向下移动时可以检索和更新它。