我在GridView中添加了一个LinkButton,在JavaScript中利用LinkButtonID.parentNode.parentNode.rowIndex
可以获取到当前行的值,可是有的时候第一行的行号是从1开始,有的时候是从2开始,搞不懂为什么?
有人知道是为什么吗?或者告诉我其他的用JavaScript如何取得gridview的当前行号的方法好吗?谢谢
可以获取到当前行的值,可是有的时候第一行的行号是从1开始,有的时候是从2开始,搞不懂为什么?
有人知道是为什么吗?或者告诉我其他的用JavaScript如何取得gridview的当前行号的方法好吗?谢谢
我一般是将gridview里需要被Javascript操作的对象在page render的时候就注册到Javascript 里去
楼主可以在后台取:
GridView.Row.RowIndex是int 型的.从0开始计数.
LinkButton的一个属性上 ? 哪个属性? 能具体说明一下么?
比如一个GridView中 CheckBox
你可以改成LinkButton protected void GridViewData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.FindControl("CheckBoxID") != null)
{
CheckBox checkBoxID = (CheckBox)e.Row.FindControl("CheckBoxID");
checkBoxID.Attributes.Add("ObjectID", ((DataRowView)container.DataItem)["ID"].ToString()); //"ID" 对应数据源的主键
}
}
js取时
var GridView2 = document.getElementById("<%=GridView1.ClientID %>");
for(i = 1;i < GridView2.rows.length; i++)
{
var objCheckBox = GridView2.rows[i].cells[0].firstChild;
if(objCheckBox.checked != null)
{
if(objCheckBox.checked==true)
{
var nowSelectID = objCheckBox.getAttribute("ObjectID");
alert(nowSelectID);
}
}
}
GridViewRow container = (GridViewRow)checkBoxID.NamingContainer;
是我点击第1行时,alert一下行号,发现弹出2。
而数据量少的时候,点击第1行可以正确地弹出1。
所以发现了原因,就是有件数多有分页的时候就会是2,否则就是1。谢谢大家,马上结贴。