Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GridView使用引导框删除。确认始终返回false_Javascript_Asp.net_Vb.net_Aspxgridview_Bootbox - Fatal编程技术网

Javascript GridView使用引导框删除。确认始终返回false

Javascript GridView使用引导框删除。确认始终返回false,javascript,asp.net,vb.net,aspxgridview,bootbox,Javascript,Asp.net,Vb.net,Aspxgridview,Bootbox,我正在尝试使用TemplateField中的LinkButton从Gridview中删除记录。我的LinkButton应该打开一个bootbox.confirm()并根据返回值在后端调用GridView.RowCommand处理程序 网格视图布局: <asp:GridView ID="gvEntRelationship" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" Da

我正在尝试使用TemplateField中的LinkButton从Gridview中删除记录。我的LinkButton应该打开一个bootbox.confirm()并根据返回值在后端调用GridView.RowCommand处理程序

网格视图布局:

<asp:GridView ID="gvEntRelationship" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"  DataKeyNames="OFTID" DataSourceID="ObjectDataEntRelations" EnableModelValidation="True" >`
   <Columns>
     <asp:CommandField ShowEditButton="True" />
     <asp:TemplateField ShowHeader="False">
        <ItemTemplate>
           <asp:LinkButton ID="lnkDelRel" runat="server" CausesValidation="False" CommandName="Del" Text="Delete" OnClientClick="return OpenDeleteBox(this);"></asp:LinkButton>
        </ItemTemplate>
     </asp:TemplateField>
  </Columns>
</asp:GridView>
我正在使用OnClientClick调用javascript函数。当内部函数运行时,我看到警报('outside')(意味着它已经返回false),然后引导框显示出来。如果我将return false移到else子句中,如:

 bootbox.confirm("Delete This?", function (confirmed) {
                if (confirmed) {
                    alert('in if');
                    return true;
                }
                else {
                    return false;
                }
            });
它继续使用GridView.row命令处理程序删除记录,而无需等待confirbox出现

编辑:似乎做了这项工作

function OpenDeleteBox(sender) {
            if ($(sender).attr("confirmed") == "true") { return true; }
            bootbox.confirm("Delete This?", function (confirmed) {
                if (confirmed) {
                    $(sender).attr("confirmed", confirmed);
                    sender.click();
                }
            });

            return false;

        }
看看这些帖子


我认为您需要使用带有LinkButton的默认javascript确认函数。似乎无法使用引导框确认。这是默认行为

我明白了。这似乎是有道理的。我正在考虑对特定行的处理程序进行手动Ajax回发。关于如何实现这一点,有什么建议吗?我还发现:这在-Bootstrap(因此Bootbox)模型中有介绍,它们是异步的,因此您的OnClientClick将在对话框关闭之前解析。
function OpenDeleteBox(sender) {
            if ($(sender).attr("confirmed") == "true") { return true; }
            bootbox.confirm("Delete This?", function (confirmed) {
                if (confirmed) {
                    $(sender).attr("confirmed", confirmed);
                    sender.click();
                }
            });

            return false;

        }