当使用javascript删除行时,第一次只删除正确的行

当使用javascript删除行时,第一次只删除正确的行,javascript,asp.net,vb.net,gridview,Javascript,Asp.net,Vb.net,Gridview,对于gridview、rowdatabound事件,我编写了以下代码: Private Sub gv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv.RowDataBound If (e.Row.RowType = DataControlRowType.DataRow) Then e.Row.Cells(0)

对于gridview、rowdatabound事件,我编写了以下代码:

Private Sub gv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv.RowDataBound
    If (e.Row.RowType = DataControlRowType.DataRow) Then
        e.Row.Cells(0).Text = "<a href='javascript:fnDelete(" &  e.Row.RowIndex & ");' style='text-decoration:none;'><img src='Images/DEL.gif'   height='10' width='10' border='0'></img></a>"
Private Sub gv_RowDataBound(ByVal sender作为对象,ByVal e作为System.Web.UI.WebControls.GridViewRowEventArgs)处理gv.RowDataBound
如果(e.Row.RowType=DataControlRowType.DataRow),则
e、 行。单元格(0)。Text=“”
现在在JavaScript中使用fnDelete函数,如下所示:

 function fnDelete(rowindex)
 {
  ....
    var gridViewctl = document.getElementById('<%= gv.ClientID %>');
    gridViewctl.deleteRow(rowindex+1);
 }
函数fnDelete(行索引)
{
....
var gridViewctl=document.getElementById(“”);
gridViewctl.deleteRow(行索引+1);
}
问题:第一次,它删除正确的行,然后每次都删除一些不同的行,而不是删除单击的行。看来,原因是由于行索引之前是绑定的,而行被删除了,所以,它发生了变化


请您指导如何解决此问题。

为什么不动态获取行索引,而不是使用事件中的元素传递它并查找父TR

e.Row.Cells(0).Text = "<a href='#' onclick='fnDelete(this);' style='text-decoration:none;'><img src='Images/DEL.gif'   height='10' width='10' border='0'></img></a>"

 function fnDelete(el) {
     var gridViewctl = document.getElementById('<%= gv.ClientID %>');
     // anchor is el, td is the first parentElement, tr is the next parentElement
     var rowIndex = el.parentElement.parentElement.rowIndex;
     gridViewctl.deleteRow(rowIndex);
 }
e.Row.Cells(0.Text=“”
函数fnDelete(el){
var gridViewctl=document.getElementById(“”);
//锚点是el,td是第一个parentElement,tr是下一个parentElement
var rowIndex=el.parentElement.parentElement.rowIndex;
gridViewctl.deleteRow(行索引);
}

为什么从
RowDataBound
调用Javascript方法?在页面呈现之前,它将自动迭代每一行。是。它将迭代。