Introduction
Today, I am going to discuss how to move up or move down GridView
row using jQUERY in ASP.NET.
Background
The GridView
is populated from code behind in Page_Load
event and using jQuery we can re-order jQuery row. In every row of GridView
, there will be UpArrow
button and DownArrow
button. Clicking UpArrow
button, the associated row will be moved up and clicking DownArrow
button, the associated row will be moved down.
Using the Code
Now, I am going to share step by step:
- Open Visual Studio.
- Create one new Empty Web Project.
- Add a new file to your solution. Name it "Default.aspx".
- Add the following code in your "Default.aspx" (I have added necessary comments for understanding.)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type ="text/javascript"
src ="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
var MoveRowUp = "table[id*=gvStudent] input[id*='btnUp']"; var MoveRowDown = "table[id*=gvStudent] input[id*='btnDown']";
$(document).ready(function () {
DisableRow(); $(MoveRowUp).click(function () {
$(this).parents("tr").insertBefore($(this).parents("tr").prev())
DisableRow();
});
$(MoveRowDown).click(function () {
$(this).parents("tr").insertAfter($(this).parents("tr").next());
DisableRow();
});
function DisableRow() {
$("#<%=gvStudent.ClientID%>
tr:has(td) input[id*='btnUp']").attr("disabled", false);
$("#<%=gvStudent.ClientID%>
tr:has(td):first input[id*='btnUp']").attr("disabled", true);
$("#<%=gvStudent.ClientID%>
tr:has(td) input[id*='btnDown']").attr("disabled", false);
$("#<%=gvStudent.ClientID%>
tr:last input[id*='btnDown']").attr("disabled", true);
}
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="gvStudent" runat="server"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="SNAME"
HeaderText="Student Name" SortExpression="SNAME" />
<asp:BoundField DataField="Class"
HeaderText="Student Class" SortExpression="Class" />
<asp:TemplateField HeaderText="Move Row">
<ItemTemplate>
<input id="btnUp"
type="button" value="⇑"
style="color: Red;"/>
<input id="btnDown"
type="button" value="⇓"
style="color: Red;" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body></html>
- Add the following code in your code behind file - Default.aspx.cs (I have added necessary comments for understanding.)
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
LoadStudent(); }
}
protected void LoadStudent()
{
SqlConnection conn = new SqlConnection("YOUR CONNECTION STRING");
SqlCommand cmd = new SqlCommand
("Select * from Students", conn); SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet(); da.Fill
(ds,"Students");
gvStudent.DataSource = ds;
gvStudent.DataBind();
}
}
- Now your code is ready. Press F5 to run. Happy coding!!!
Points of Interest
For more information on jQuery, you can find online help at www.jquery.com.