如何在GridView命令字段中调用JavaScript函数?

the*_*van 2 javascript c# asp.net gridview

我已经返回一个Javascript函数,它向用户询问确认消息.JavaScript函数是

    function ConfirmOnDelete() {
    if (confirm("Are you sure to delete?"))
        return true;
    else
        return false;
Run Code Online (Sandbox Code Playgroud)

和GridView如下所示:

    <asp:CommandField HeaderText="Delete" ShowDeleteButton="True" />
Run Code Online (Sandbox Code Playgroud)

这里我想在用户单击GridView命令字段中的Delete时调用JavaScript函数.怎么称呼这个?

Bri*_*les 6

假设您想继续使用您的CommandField,您可以使用GridView的OnRowDataBound事件以编程方式执行此操作.

GridView声明中指定RowDataBound事件的事件处理程序:

<asp:GridView ID="gv" runat="server" OnRowDataBound="gv_RowDataBound"....
Run Code Online (Sandbox Code Playgroud)

然后在你的事件处理程序(代码隐藏)中找到你的按钮(这里我假设ImageButton,虽然这取决于你的ButtonType属性CommandField)并将JavaScript添加到其OnClientClick属性中.

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        ((ImageButton)e.Row.Cells[cell].Controls[ctrl]).OnClientClick = "return confirm('Are you sure you want to delete?');"; // add any JS you want here
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,细胞是指你的列索引CommandFieldCTRL指控制指标(删除按钮),如果引用单元格内.