0

经过几个小时尝试所有可能的方法后,我放弃了。也许你们可以看到我在这里做错了什么。我有一个带有删除按钮的 GridView。在 ClientClick 事件中,我调用了一个 javascript 函数,该函数打开一个带有是/否按钮的 jquery msgbox。如果用户单击是,我希望该函数ConfirmDeleteRecord()返回 true。

这是 GridView 上的“删除”列的样子:

<asp:TemplateField HeaderText="Delete" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
        <asp:LinkButton CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ClientSkuID") %>' Text="Delete" runat="server" ID="lnkDelete" OnClientClick="return ConfirmDeleteRecord()"></asp:LinkButton>
    </ItemTemplate>

这是我的 Javascript 函数:

function ConfirmDeleteRecord() {

var bResult = false;

$.msgBox({
    title: "Are You Sure?",
    content: "Are you sure you want to delete this record?",                    
    type: "confirm",
    buttons: [{ value: "Yes" }, { value: "No" }, { value: "Cancel"}],
    success: function (result) {
        if (result == "Yes") {
            bResult = true;
        }
    }
    });


return bResult;

}

问题是代码永远不会到达“return bResult”行。

谢谢你们。

4

1 回答 1

0

那是行不通的,因为 $.msgBox 不是像 confirm() 这样的阻塞函数。有道理?该功能所做的只是显示一些 HTML。你需要做的是改变你的代码:

 if (result == "Yes") {
            bResult = true;
        }

类似于:

if (result == "Yes") {
 //perform postback here to delete the record. 
}
于 2012-12-08T21:46:06.430 回答