【问题标题】:Adding a JavaScript confirmation prompt to a delete command button in an ASP.NET grid view?向 ASP.NET 网格视图中的删除命令按钮添加 JavaScript 确认提示?
【发布时间】:2011-01-01 07:15:27
【问题描述】:

所以我有一个 ASP.NET 网格视图:

<asp:GridView ID="gvReferences" runat="server" AutoGenerateColumns="False" ShowHeader="False"
    OnRowEditing="gvReferences_RowEditing" 
    OnRowDeleting="gvReferences_RowDeleting" onrowcreated="gvReferences_RowCreated">
    <Columns>
        <asp:TemplateField ItemStyle-Width="400px">
            <ItemTemplate>
                <asp:Label ID="lblId" Visible="false" runat="server" Text='<%# Eval("Id") %>' />
                <asp:Label ID="lblAssociatedSpecies" runat="server" Text='<%# Eval("Text") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Label ID="lblKind" runat="server" Text='<%# Eval("Kind") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:CommandField ButtonType="Button" DeleteText="delete" ShowDeleteButton="True"
            ShowCancelButton="False" EditText="edit" ShowEditButton="True">
            <ControlStyle Width="60px" />
        </asp:CommandField>
    </Columns>
</asp:GridView>

我想在 Delete 命令按钮上附加一些 JavaScript,以便在删除行之前要求确认。

有什么想法吗?

【问题讨论】:

  • 我删除了我的答案,我同意@Stephen Wrighton 的答案

标签: c# asp.net javascript gridview


【解决方案1】:

您始终可以使用 TemplateField 而不是 CommandField。

<asp:TemplateField>
  <ItemTemplate>
    <asp:Button name="btnDelete" commandName="Delete" OnClientClick="return confirm('Delete 
this Item');" Text="Delete" runat="server" />
    <asp:Button name="btnEdit" commandName="Edit" Text="Edit" runat="server" />
  </ItemTemplate>
</asp:TemplateField>

【讨论】:

  • 是的,效果很好。您可能需要编辑您的答案以包含 runat="server" 并更正“confirm”的拼写... :-)
  • 糟糕,对那些错别字感到抱歉。
【解决方案2】:

完成此操作后,我使用了来自 Ajax Control Toolkit 的带有 ConfirmButtonExtender 的模板字段。

<asp:TemplateField>
   <ItemTemplate>   
       <asp:Button name="DeleteButton" commandName="Delete" Text="Delete" runat="server" />   
       <ajaxToolkit:ConfirmButtonExtender TargetControlId="DeleteButton" ConfirmText="Delete this entry?" />
   </ItemTemplate>   
</asp:TemplateField>  

【讨论】:

  • 很好,谢谢 - 碰巧我们没有在这个应用程序中使用该工具包,但我会记住这一点,以备不时之需。
【解决方案3】:

这是一个删除确认的javascript。

 function not_check1()
            {
              var where_to1= confirm("Do you really want to delete this record??");

                                    if (where_to1 == true)
                                        {
                                            return true;
                                        }
                                    else
                                        {
                                            return false;
                                        }
           }

这是您调用 javascript 的 gridview 字段。

 <asp:TemplateColumn ItemStyle-Width="20" >
<ItemTemplate>
 <asp:ImageButton ID="ib_delete" runat="server" ImageUrl="~/image/images.jpg" commandName="Delete"  OnClientClick="return not_check1();" ImageAlign="Middle"/></ItemTemplate>

</asp:TemplateColumn>

【讨论】:

    【解决方案4】:

    RowDataBound 中添加-

    LinkButton objDelete = e.Row.Cells[0].Controls[0] as LinkButton;
    objDelete.Attributes.Add("onclick", "javascript:return confirm('Do you want to delete this item?');");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 2015-07-24
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 2014-09-25
      相关资源
      最近更新 更多