我有一个GridView,其中每一行都有信息,当用户点击该行时,相关的信息显示在单独的DIV中(这可行)但是当我想访问行时(更改/添加css类)点击)我无法定位该行。如何定位JavaScript onclick事件分配给的行?
这是一个非常精简的代码版本:
protected void vd_gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "showTest(this)");
}
}
以下是名为onclick的JS:
<script type="text/javascript">
function showTest(test) {
// var rowTest1 = document.getElementById(this);
// var rowTest2 = document.getElementById(this.id);
// var rowTest3 = document.getElementById(test);
// var rowTest4 = document.getElementById(test.id);
var row = document.getElementById(test.id);
var currentClass = row .className;
row.className += "testClass";
}
</script>
调试页面时,这是生成的错误:
Empty string passed to getElementById().
答案 0 :(得分:0)
您可以尝试test.target.id 因为我认为你在点击按钮时调用一个事件。所以这将通过该测试中的事件。
答案 1 :(得分:0)
最后这就是我所做的:
row.Attributes["id"] = gv.ID + "_row_" + e.Row.RowIndex.ToString();
在这里得到参考:
var row = document.getElementById(test.id);