我有一个网格。首先,网格行填充行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。
答案 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;
}