Create two buttons "one for UP" and "one for DOWN" in the datagrid then you can easily move row up and down by using the below code.
Add code in Default.aspx page:
Now, Add code in Default.aspx.cs
Now you can easily move your datagrid row up and down with sorting.
Add code in Default.aspx page:
<asp:DataGrid ID="dgrdAdmin" runat="server" OnItemCommand="dgrdAdmin_ItemCommand"
AllowSorting="true">
<Columns>
<asp:BoundColumn DataField="id" Visible="false"></asp:BoundColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:ImageButton ID="imgbtnUP" runat="server" CommandName="Up" />
<asp:ImageButton ID="imgbtnDown" runat="server" CommandName="Down" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
Now, Add code in Default.aspx.cs
private int GetMaxSortOrder()
{
int max = 0;
DataTable dt = new DataTable();
SqlConnection conn = new SqlConnection("Your_Connection_String");
SqlCommand cmd = new SqlCommand("SELECT MAX(SORTORDER) FROM Your_Admin_Table");
conn.Open();
SqlDataAdapter sqad = new SqlDataAdapter(cmd);
sqad.Fill(dt);
if (dt.Rows.Count > 0)
{
if (dt.Rows[0][0].ToString() != "")
max = Convert.ToInt32(dt.Rows[0][0]);
}
return max;
}
protected void dgrdAdmin_ItemCommand(object sender, DataGridCommandEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (e.CommandName.Equals("Up"))
{
int SortOrder = 0;
SqlConnection conn = new SqlConnection("Your_Connection_String");
if (e.Item.Cells[10].Text != "")
{
SortOrder = Convert.ToInt32(e.Item.Cells[10].Text);
if (SortOrder == 0)
{
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand("SELECT id FROM Your_ADMIN_Table");
conn.Open();
SqlDataAdapter sqad = new SqlDataAdapter(cmd);
sqad.Fill(dt);
if (dt.Rows.Count > 0)
{
int count = 0;
foreach (DataRow dr in dt.Rows)
{
count++;
SqlCommand cmdUp = new SqlCommand("UPDATE Your_ADMIN_Table SET
SortOrder='" + count + "' WHERE id='" + dr["id"].ToString() + "'");
cmdUp.ExecuteNonQuery();
}
}
// bind your grid
return;
}
}
if (SortOrder == GetMaxSortOrder() || SortOrder > GetMaxSortOrder())
return;
SqlCommand cmd2 = new SqlCommand("UPDATE Your_ADMIN_Table SET
SortOrder='" + SortOrder + "' WHERE SortOrder='" + (SortOrder + 1) + "'");
cmd2.ExecuteNonQuery();
SqlCommand cmd3 = new SqlCommand("UPDATE Your_ADMIN_Table SET
SortOrder='" + (SortOrder + 1) + "' WHERE id='" + e.Item.Cells[1].Text + "' AND
SortOrder='" + SortOrder + "'");
cmd3.ExecuteNonQuery();
dgrdAdmin.DataSource = // Bind data in datagrid
dgrdAdmin.DataBind();
}
if (e.CommandName.Equals("Down"))
{
SqlConnection conn = new SqlConnection("Your_Connection_String");
int SortOrder = 0;
if (e.Item.Cells[10].Text != "")
{
SortOrder = Convert.ToInt32(e.Item.Cells[10].Text);
if (SortOrder == 0)
{
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand("SELECT id FROM Your_ADMIN_Table");
conn.Open();
SqlDataAdapter sqad = new SqlDataAdapter(cmd);
if (dt.Rows.Count > 0)
{
int count = 0;
foreach (DataRow dr in dt.Rows)
{
count++;
SqlCommand cmdDown = new SqlCommand("UPDATE Your_ADMIN_Table SET
SortOrder='" + count + "' WHERE id='" + dr["id"].ToString() + "'");
cmdDown.ExecuteNonQuery();
}
}
// bind your grid
return;
}
}
if (SortOrder == 0)
return;
SqlCommand cmd1 = new SqlCommand("UPDATE Your_ADMIN_Table SET SortOrder=
" + SortOrder + "' WHERE SortOrder='" + (SortOrder - 1) + "'");
cmd1.ExecuteNonQuery();
SqlCommand cmd2 = new SqlCommand("UPDATE Your_ADMIN_Table SET SortOrder=
'" + (SortOrder - 1) + "' WHERE id='" + e.Item.Cells[1].Text + "'
AND SortOrder='" + SortOrder + "'");
cmd2.ExecuteNonQuery();
dgrdAdmin.DataSource = // Bind data in datagrid
dgrdAdmin.DataBind();
}
}
}
Now you can easily move your datagrid row up and down with sorting.
ReplyDeleteافضل شركة كشف تسربات المياه بالمدينة المنورة شركات كشف تسربات المياه بالمدينة المنورة
شركة كشف تسربات المياه بالاحساء شركة كشف تسربات المياه بالاحساء
شركة مكافحة حشرات بالرياض شركة مكافحة حشرات بالرياض
شركة رش مبيدات بالرياض شركة رش مبيدات بالرياض