//记录上移或下移
private void ReccordData(DataTable dt, string TypeValue,int index)
{
DataRow dr = dt.Rows[index]; //表示要移动的当前行对象
string strValu = dr[0].ToString(); //当前行对象某一例的值(我这里默认是0列) strVal是记录此值
dt.Rows.RemoveAt(index); //先删除它,在插入
DataRow drnew = dt.NewRow();
drnew["Engilsh"] = strValu;
if (TypeValue == "UPEnglish") //说明是上移或者下移
{
dt.Rows.InsertAt(drnew, index - 1); //上移就在自已索引位置减1
}
else
{
dt.Rows.InsertAt(drnew, index+1); //反之下移就在当前位加1
}
gridViewInsertEnglishBind();// 绑定数据
}
//下面是行命令事件
protected void gridViewInTruEnglish_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "DeleteEnglish": // 删除
// int row = ((GridViewRow)((ImageButton)sender).NamingContainer).RowIndex;
GridViewRow drvEnglishDelet = ((GridViewRow)(((ImageButton)(e.CommandSource)).Parent.Parent)); //此得出的值是表示那行被选中的索引值
dtInStroEnglish.Rows.RemoveAt(drvEnglishDelet.RowIndex);
gridViewInsertEnglishBind();// 绑定数据
break;
case "DownEnglish": // 下降
GridViewRow drvDownEnglish = ((GridViewRow)(((ImageButton)(e.CommandSource)).Parent.Parent)); //此得出的值是表示那行被选中的索引值
int indexDown = drvDownEnglish.RowIndex;//当前行的索引
if (indexDown == dtInStroEnglish.Rows.Count-1) //表示最下面了,索引从0开始
{
return;
}
else
{
ReccordData(dtInStroEnglish, "UPEnglish", indexDown);
}
break;
case "UPEnglish": // 上升
GridViewRow drvUPEnglish = ((GridViewRow)(((ImageButton)(e.CommandSource)).Parent.Parent)); //此得出的值是表示那行被选中的索引值
int indexUp = drvUPEnglish.RowIndex;//当前行的索引
if (indexUp == 0) //当它本身位置是第一个当然是不可以上移的
{
return;
}
else
{
ReccordData(dtInStroEnglish, "UPEnglish", indexUp);
}
break;
}
}