从asp:DataGrid ItemCommand执行jQuery函数

时间:2012-02-07 08:32:44

标签: jquery asp.net

我在此网格视图中有一个asp:DataGrid asp:ButtonColumn。当我点击删除操作时,我输入"delete"案例开关。如果结果为false,我想在.aspx页面中执行jQuery函数定义。

是否可以这样做?

<asp:DataGrid runat="server" ID="dgList" InItemCommand="dgList_ItemCommand">
    <asp:ButtonColumn Text="Delete" CommandName="delete" />
</asp:DataGrid>

在背后的代码中:

protected void dgList_ItemCommand(object source, DataGridCommandEventArgs e)
{
    switch (e.CommandName)
    {
        case "other_command":
            break;

        case "delete":
            bool myResult = new MyClass().GetTest();
                    //if myResult = false, I'd like execute a jquery function
            break;
    }

}

2 个答案:

答案 0 :(得分:0)

当您单击按钮时,在客户端使用ajax请求调用服务器端逻辑可能是个好主意。这样您就可以选择是否继续在客户端继续。

您可以将删除代码移动到page method,并在单击按钮时从jQuery调用它。

答案 1 :(得分:0)

你可以做这样的事情,虽然它有点突兀。

根据您的结果将myResult设置为公共bool。

在背后的代码中:

case "delete":
            myResult = new MyClass().GetTest();
            break;
}

添加:

protected bool myResult {get;set;}

在.aspx

<% if (myResult)
  { %>
    //Do Jquery here
<% } %>

但是,如果您希望Javascript对按下按钮作出反应,则应将javascript函数附加到按钮onclick处理程序。例如,您可以创建一个方法,用于在Datagrid完成其数据绑定时,循环遍历行并将javascript函数附加到该按钮。

示例:

protected void Datagrid_DataBound(object sender, EventArgs e)
{
   //Cast your Datagrid datasource to Dataset
   //Loop through the dataset
   //Cast the button (.Controls[1] is important to identify the button child control)


   System.Web.UI.WebControls.Button btn =(System.Web.UI.WebControls.Button)row.Cells[x].Controls[1];
   btn.Attributes.Add("onclick", "jquery_function_name()");
}