我的要求是在每次回发时刷新数据,但如果这样做,我的 rowcommand 事件不会在 gridview 中的链接按钮单击时触发?我怎样才能实现它?
我正在使用 jquery 更改行顺序并将新顺序保存在隐藏变量中。在页面回发上,我从隐藏变量中获取新订单,并用新订单重新绑定网格。
每次页面回发时,我都需要用新订单重新绑定网格。当我单击网格中的编辑/删除链接按钮但不会触发 rowcommand 事件时,会发生回发。
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
string order = hdnOrder.Value.ToString();
if (order != string.Empty)
{
ReOrder();
}
}
}
protected void ReOrder()
{
DataTable dt = new DataTable();
if (ViewState["data"] != null)
{
dt = (DataTable) ViewState["data"];
string[] order = hdnOrder.Value.Split(',');
for (int i = 0; i < order.Length; i++)
{
DataRow[] keyRows;
keyRows = dt.Select("ID='" + order[i] + "'");
if (keyRows.Length > 0)
{
int index = dt.Rows.IndexOf(keyRows[0]);
dt.Rows[index].SetField("Precedence", i + 1);
}
}
DataView dv = dt.DefaultView;
dv.Sort = "Precedence ASC";
ViewState["data"] = dv.ToTable();
grd.DataSource = ViewState["data"];
grd.DataBind();
hdnOrder.Value = string.Empty;
}
}