按钮字段删除确认


我在gridview中使用了buttonfield。
我想在上面加上删除确认。

怎么办呢。
我尝试过的代码如下。

<asp:GridView ID="GridView1" runat="server" Width="100%"
                  DataKeyNames="NoticeId" onrowdatabound="GridView1_RowDataBound"
                  onrowdeleting="GridView1_RowDeleting" AutoGenerateEditButton="True"
                  onrowediting="GridView1_RowEditing">
                  <Columns>
                      <asp:ButtonField CommandName="Delete" Text="Delete" ButtonType="Link"/>
                      <asp:BoundField />

                  </Columns >
              </asp:GridView>

在gridview的rowdatabound中

                if (e.Row.RowType == DataControlRowType.DataRow)
                {
  foreach (DataControlFieldCell cell in e.Row.Cells)
                    {
                        // check all cells in one row
                        foreach (Control control in cell.Controls)
                        {
                            // Must use LinkButton here instead of ImageButton
                            // if you are having Links (not images) as the command button.
                            ButtonField button = new ButtonField();
                            if (button != null && button.CommandName == "Delete")
                                // Add delete confirmation
                                button.onclientclick= "if (!confirm('Are you sure " +
                                       "you want to delete this record?')) return;";
                        }
                    }
}

但这里 OnclientClck 不可用,并且它给了我错误。
我认为我的代码是错误的。
这样做的正确方法是什么?

解决方案4

使用这一行作为您的代码

C#
button.Attributes.Add("onclick", "javascript:return confirm('Are you sure?');");

解决方案6

据我了解 ButtonField 不支持 OnClientClick 属性。

替代解决方案是使用 TemplateField 定义 ASP 按钮并调用其 Onclick 事件,如下所示。

<asp:gridview id="GridView1" runat="server" width="100%" xmlns:asp="#unknown">
                   DataKeyNames="NoticeId" onrowdatabound="GridView1_RowDataBound"
                   onrowdeleting="GridView1_RowDeleting" AutoGenerateEditButton="True"
                   onrowediting="GridView1_RowEditing">
                   <columns>

   <asp:templatefield>
                 <itemtemplate>
                     <asp:button id="Button1" runat="server" text="Delete" commandname="Delete" onclientclick="return ConfirmDeletion();" />
                 </itemtemplate>


                   </asp:templatefield></columns>
               </asp:gridview>

//header标签中的脚本

<script>

function ConfirmDeletion()

{

 return (confirm("Are you sure you want to delete the record?"));

}

<script>

解决方案1

在代码中使用response.write显示javascript

JavaScript
response.write("<script>return confirm('Are You Sure')</script>");

解决方案5

如果你改变线路:

ButtonField button = new ButtonField();

进入:

LinkButton button = control as LinkButton;

它应该有效。

解决方案7

您好,使用下面的代码解决了这个问题,我希望它对您有用,再见

XML
<script type="text/javascript" language="javascript">

       $(document).ready(function() {

           $(':image').each(function() {
               var valorRunatAntes = $(this).attr("onclick");
               control = $(this);
               $(this).attr("onclick", "");
               $(this).attr("onclick", " if (confirm('¿Esta seguro que desea cambiar la fecha de vigencia?')){" + valorRunatAntes+" ;return true;}else{return false;}");

           });

       });

    </script>

コメント

タイトルとURLをコピーしました