随着ajax的调用,网格行id丢失

时间:2012-03-29 13:29:46

标签: c# ajax

我有一个网格。首先,网格行填充行id(即“tr”id)但是当单击一个按钮(.Net Ajax)页面时会刷新。然后网格行ID将消失。如何解决这个问题。我的意思是我需要在通过Ajax调用刷新网格时保留行ID。

调用ajax更清晰,网格行正在丢失id。我需要保留这个价值。有什么方法吗?请帮帮我。

protected void grd_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
    e.Row.Attributes.Add("onclick", "javascript:ChangeRowColor(" + e.Row.ClientID + ")");
}
}

上面是代码,用ajax方法刷新后,其行id变为null。所以,在运行时我得到的js错误就像没有定义id。

1 个答案:

答案 0 :(得分:2)

你是说在回发后e.Row.ClientID为空或空?不要传递行的ID,只需使用this传递行本身:

e.Row.Attributes.Add("onclick", "javascript:ChangeRowColor(this);");

通过执行此操作,您不再需要使用document.getElementById,因为该元素将作为参数传递:

编辑:这是一个快速的&脏解决方案,但您可以使用全局变量来跟踪以前选定的行。

var previousRow;

ChangeRowColor = function(row){
    if (previousRow){
        previousRow.style.background = 'white';
    }
    row.style.background = "red";
    previousRow = row;
}