我在此网格视图中有一个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;
}
}
答案 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()");
}