Pages

Men

rh

10/21/2014

Swapping GridView rows Up and Down

In this article I am posting code about swapping GridView rows Up and Down using Data Tables.
 
Here is Aspx Code
  <form id="form1" runat="server">        <div>        <asp:Label ID="Label1" runat="server" ForeColor="red" Text="Label"></asp:Label>        <br />        <br />            <asp:GridView ID="Gridviewselectbus" runat="server" Height="87px" Width="771px"                HorizontalAlign="Center" AutoGenerateColumns="False" OnRowCommand="Gridviewselectbus_RowCommand" CellPadding="4" ForeColor="#333333" GridLines="None">                <RowStyle BorderColor="#999999" HorizontalAlign="Center" VerticalAlign="Middle"                    Wrap="True" BackColor="#EFF3FB" />                <EmptyDataRowStyle BorderColor="#999999" />                <Columns>                    <asp:BoundField DataField="Lname" HeaderText="Lname" SortExpression="Lname" />                    <asp:BoundField DataField="Fname" HeaderText="Fname" SortExpression="Fname" />                    <asp:BoundField DataField="Job" HeaderText="Job" SortExpression="Job" />                    <asp:BoundField DataField="Index"  HeaderText="Index" SortExpression="Index" />                    <asp:TemplateField>                        <HeaderStyle Width="3%" />                        <ItemTemplate>                            <asp:ImageButton ID="ibtnUp" runat="server" border="0" CommandArgument='<%# Eval("index")%>'                                CommandName="Up" Height="18px" ImageUrl="images/btn_GreenUP.png" Width="18px" />                        </ItemTemplate>                    </asp:TemplateField>                    <asp:TemplateField>                        <HeaderStyle Width="3%" />                        <ItemTemplate>                            <asp:ImageButton ID="ibtnDown" runat="server" border="0" CommandArgument='<%# Eval("index")%>'                                CommandName="Down" Height="18px" ImageUrl="images/btn_GreenDown.png" Width="18px" />                        </ItemTemplate>                    </asp:TemplateField>                </Columns>                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />                <EditRowStyle BackColor="#2461BF" />                <AlternatingRowStyle BackColor="White" />            </asp:GridView>        </div>    </form>
Here is C# code
public partial class _Default : System.Web.UI.Page {    public DataTable dt = new DataTable();    public DataTable dtnew = new DataTable();
    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            bindgrid(); // Bind Gridview with sample data         }    }
    private void bindgrid()    {        dt.Columns.Add("Fname");        dt.Columns.Add("Lname");        dt.Columns.Add("Job");        dt.Columns.Add("Index");        DataRow dr;        dr = dt.NewRow();        dr[0] = "ONE";        dr[1] = "User One";        dr[2] = "Manager";        dr[3] = 0;        dt.Rows.Add(dr);        dr = dt.NewRow();        dr[0] = "TWO";        dr[1] = "User Two";        dr[2] = "Project Lead";        dr[3] = 1;        dt.Rows.Add(dr);        dr = dt.NewRow();        dr[0] = "THREE";        dr[1] = "USer Three";        dr[2] = "Team Lead";        dr[3] = 2;        dt.Rows.Add(dr);        dr = dt.NewRow();        dr[0] = "FOUR";        dr[1] = "User Four";        dr[2] = "Module Lead";        dr[3] = 3;        dt.Rows.Add(dr);        dr = dt.NewRow();        dr[0] = "FIVE";        dr[1] = "User Five";        dr[2] = "Senior Developer";        dr[3] = 4;        dt.Rows.Add(dr);        dr = dt.NewRow();        dr[0] = "SIX";        dr[1] = "User Six";        dr[2] = "Developer";        dr[3] = 5;        dt.Rows.Add(dr);        dt.AcceptChanges();        Gridviewselectbus.DataSource = dt;        Gridviewselectbus.DataBind();        Session["dt"] = dt;    } 
    protected void Gridviewselectbus_RowCommand(object sender, GridViewCommandEventArgs e)    {        if (e.CommandName == "Up")        {            int index = Convert.ToInt32(e.CommandArgument);            if (index == 0)            {                Label1.Text = "You Cant move recor' Up";                Label1.Visible = true;                return;            }            dt = (DataTable)Session["dt"];            int value = Convert.ToInt32(dt.Rows[index]["Index"].ToString());            dt.Rows[index]["Index"] = Convert.ToInt32(index) - 1;            dt.Rows[index - 1]["Index"] = value;// Convert.ToInt32(index);            dt.DefaultView.Sort = "Index";            dt.AcceptChanges();            dtnew = dt.Copy();            Gridviewselectbus.DataSource = dt;            Gridviewselectbus.DataBind();            dt.AcceptChanges();            for (int i = 0; i <= Gridviewselectbus.Rows.Count - 1; i++)            {                dtnew.Rows[i]["Lname"] = Gridviewselectbus.Rows[i].Cells[0].Text;                dtnew.Rows[i]["Job"] = Gridviewselectbus.Rows[i].Cells[1].Text;                dtnew.Rows[i]["Fname"] = Gridviewselectbus.Rows[i].Cells[2].Text;                dtnew.Rows[i]["Index"] = Gridviewselectbus.Rows[i].Cells[3].Text;            }            Session["dt"] = dtnew;            Label1.Text = string.Empty;        }        if (e.CommandName == "Down")        {            int index = Convert.ToInt32(e.CommandArgument);            dt = (DataTable)Session["dt"];            if (Convert.ToInt16(index + 1) == dt.Rows.Count)            {                Label1.Text = "You Cant move record down";                Label1.Visible = true;                return;            }            int value = Convert.ToInt32(dt.Rows[index]["Index"].ToString());            dt.Rows[index]["Index"] = Convert.ToInt32(dt.Rows[index]["Index"].ToString()) + 1;            dt.Rows[index + 1]["Index"] = value;            dt.AcceptChanges();            dt.DefaultView.Sort = "Index";            dt.AcceptChanges();            dtnew = dt.Copy();            Gridviewselectbus.DataSource = dt;            Gridviewselectbus.DataBind();            dt.AcceptChanges();            for (int i = 0; i <= Gridviewselectbus.Rows.Count - 1; i++)            {                dtnew.Rows[i]["Lname"] = Gridviewselectbus.Rows[i].Cells[0].Text;                dtnew.Rows[i]["Job"] = Gridviewselectbus.Rows[i].Cells[1].Text;                dtnew.Rows[i]["Fname"] = Gridviewselectbus.Rows[i].Cells[2].Text;                dtnew.Rows[i]["Index"] = Gridviewselectbus.Rows[i].Cells[3].Text;            }            Session["dt"] = dtnew;            Label1.Text = string.Empty;        }    }}

Source collected from CSharpcorner.com
http://www.c-sharpcorner.com/uploadfile/Srinivas.Kotra/swapping-gridview-rows-up-and-down/

No comments :

Post a Comment