在gridview rowdatabound中设置onclientclick后,javascript没有触发

时间:2013-08-16 09:35:32

标签: javascript gridview rowdatabound

我想触发一个javascript来确认删除该行。

这是rowdatabound

Private Sub GridSlide_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridSlide.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        DirectCast(e.Row.FindControl("LinkDelete"), LinkButton).Attributes.Add("OnClientClick", "javascript:DeleteSlide('" & Convert.ToString(e.Row.RowIndex) & "')")
    End If

End Sub

这是javascript

function DeleteSlide(var_row) {
    var blnResponse = null;
    var strMessage = '';
    try {
        strMessage = 'Are you sure you want to delete this slide data?';
        blnResponse = window.confirm(strMessage);
        if (blnResponse) {
            __doPostBack('DeleteSlide()', var_row  );
        }
    }
    catch (Err) {
        alert('DeleteSlide - ' + Err.description);
    }
}

但是当我点击删除链接按钮时,javascript将不会触发。

有什么问题?

P.S。我尝试使用CommandArgument和Container.DataItemIndex,但这导致了更多的错误,所以我最终使用了rowdatabound。

1 个答案:

答案 0 :(得分:0)

试试这个:

DirectCast(e.Row.FindControl("LinkDelete"), LinkButton).OnClientClick = "javascript:DeleteSlide('" & Convert.ToString(e.Row.RowIndex) & "')";