I have Table News
NewsID, int
NewsHeadLint, varcahr(200)
OrderNews, int
I gridView Display as following query
Select ID,NewsHeadLine from News order By OrderNews DESC
----
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="NewsID" EmptyDataText="There are no data records to display."
DataSourceID="SqlDataSource1" Style="position: relative; left: 4px; top: 44px;" OnRowCommand="Grid1_Command" AllowPaging="True" PageSize="8" Width="571px" >
I have Add in gridView 2 buttonField
<asp:ButtonField ButtonType="Image" CommandName="CmdUp"..
<asp:ButtonField ButtonType="Image" CommandName="CmdDown"
..
CmdUP(command up) get the value of current order row and row the above in gridView and
swtich between them
In CS code
protected void Grid1_Command(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
{
// Object o = sender;
String z = (String)e.CommandArgument;
int indexGrid = Convert.ToInt16(z);
String CommandNamew = e.CommandName.ToString();
switch (CommandNamew)
{
//-------------------------------------------
case "CmdUp":
{
//I have write query and correctly excute in Database
String NewsIDcurrent = GridView1.DataKeys[indexGrid].Value.ToString().Trim(); //IDnews
//Response.Write(GridView1.DataKeys[Convert.ToInt16 (z)].Values[0].ToString());
SqlCommand Cmd = new SqlCommand();
Cmd.Connection = conn;
if ((indexGrid + 1) != GridView1.DataKeys.Count)
{
//NewsIDvalue this the current Id
String NewsIDunder = GridView1.DataKeys[indexGrid + 1].Value.ToString().Trim();
try
{
conn.Open();
//---Current
Cmd.CommandText = "Select OrderNews from News where NewsID=" + NewsIDcurrent;
int orderVal = (int)Cmd.ExecuteScalar();
Cmd.Parameters.Clear();
Cmd.CommandText = "Select OrderNews from News where NewsID=" + NewsIDunder;
int orderUnder = (int)Cmd.ExecuteScalar();
Cmd.Parameters.Clear();
Cmd.CommandText = "update News Set OrderNews=" + Convert.ToString(orderUnder) + " where NewsID=" + NewsIDcurrent;
Cmd.ExecuteNonQuery();
//--Under
Cmd.Parameters.Clear();
Cmd.CommandText = "update News Set OrderNews=" + Convert.ToString(orderVal) + " where NewsID=" + NewsIDunder;
Cmd.ExecuteNonQuery();
Cmd.Parameters.Clear();
// GridView1.DataBind();
}
catch (Exception ex)
{
}
finally
{
conn.Close();
// Response.Redirect("NewsCollection.aspx"); with it or without it
}
}
break;
}//end cmddown
case "CmdDown":
{
//I have write query and correctly excute in Database same idea as above
break;
}
default: { break; }
............
I have problem with this command(excute twice,or not display modefection unless u refresh the browser...)
what excatly best way to write and what event I must to write in the webpage(_Load _preRender..)