我的下面的代码工作正常,除非单击“继续”按钮时它不会发送值true。
<script type="text/javascript">
function EmpDelete(f_name) {
$("#fName").text(f_name);
$('#dialog').dialog({
title: "Delete Employee?",
modal: true,
width: 500,
height: 250,
buttons: {
"Cancel": function () {
$(this).dialog("close");
},
"Continue": function () {
$(this).dialog("close");
// return true;
}
}
});
return false;
};
</script>
当单击imgDelete ImageButton时,将调用上面的jQuery事件。
e.Row.Cells[iDelete].Controls.Add
(new ImageButton
{
ImageUrl = "Images/database_delete.png",
CommandArgument = e.Row.RowIndex.ToString(),
CommandName = "Delete",
ID = "imgDelete",
CssClass = "imgDelete",
OnClientClick = "return EmpDelete('" + e.Row.Cells[iFNmae].Text + "');",
ClientIDMode = System.Web.UI.ClientIDMode.Static
});
如何使jQuery上的“Continue”按钮返回值true,以便我的“RowCommend”事件可以进一步处理?
protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
}
}
答案 0 :(得分:1)
尝试查看ClientScriptManager.GetPostBackEventReference方法 http://msdn.microsoft.com/en-us/library/ms153112.aspx
有关如何使用它的说明,请参阅以下帖子... asp:Button in jQuery dialog box not firing OnClick event
我没有用它来传递一个CommandArgument,但是该方法有一个第二个参数,表明它是一个'参数'。您可以尝试在该参数参数中传递True值,看看是否可以在RowCommand事件处理程序中捕获它。
答案 1 :(得分:1)
我意识到我已经做了类似的事情并回顾了我的代码,看看为什么我没有使用我在其他答案中提到的第二个'参数'参数。
在我的情况下,我有一个转发器而不是GridView。每行中的一个按钮触发了jQuery UI对话框弹出窗口。但是,即使我有多行,我只有一个jQuery UI对话框;它的内容根据按下哪一行按钮而改变。我的对话框有表单字段,所以当按下对话框按钮时,我会调用GetPostBackEventReference()方法生成的javascript函数。由于提交了对话框表单中的字段,因此我无需指定任何参数。
我的观点是,在你的情况下,你可以在对话框中创建一个HiddenField,而不是使用我在其他答案中提到的第二个'参数'参数。如果您在对话框中提交表单字段,那么您将能够在RowCommand事件处理程序中捕获该HiddenField。在初始化PostBack之前,只需将其值设置为True即可。在您的情况下,我假设您还需要一个隐藏字段来标识应删除哪个员工(某种类型的EmployeeID值)。
答案 2 :(得分:0)
我在jQuery“继续”按钮和
上使用__doPostBack(uniqueID, '');
解决了这个问题
在Page_Load()事件上我添加了
if (!Page.IsPostBack)
{
ClientScript.GetPostBackEventReference(gvEmployee, string.Empty);
}
我在Gridview_RowDataBound事件上调用了jQuery Dialog
e.Row.Cells[iDelete].Controls.Add
(new ImageButton
{
ImageUrl = "Images/database_delete.png",
CommandArgument = e.Row.RowIndex.ToString(),
CommandName = "Delete",
ID = "imgEmpDelete" + e.Row.Cells[iID].Text,
**OnClientClick = "javascript:return rowAction(this.name)",**
ClientIDMode = System.Web.UI.ClientIDMode.Static
});
希望它可以帮助任何人。