0

グリッドの下に貼り付けた私のコードでは、削除ボタンをクリックすると行を削除するオプションがあります。サーバー側のコードを打つ前に、ユーザーに確認してレコードを削除してもらいたいです。

ただし、確認ポップアップが最初に表示されるのではなく、常にサーバー側のコードがヒットします。

 <asp:GridView ID="grdDelegateList" runat="server" CssClass="gridviewBorder" AutoGenerateColumns="False"
                    CellPadding="1" Style="margin-left: 0px" BackColor="White" Font-Names="Calibri"
                    BorderWidth="1px" Width="100%" AllowPaging="True" GridLines="Horizontal" RowHoverBackColor="#666666"
                    RowHoverForeColor="White" SelectedRowStyle-BackColor="#333333" SelectedRowStyle-ForeColor="White"
                    PageSize="10" OnPageIndexChanging="grdDelegateList_PageIndexChanging" OnRowCommand="grdDelegateList_RowCommand"
                    OnRowDataBound="grdDelegateList_RowDataBound" OnRowDeleting="grdDelegateList_RowDeleting">
                    <Columns>
                        <asp:BoundField HeaderText="Employee ID" DataField="DelegateID" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" />
                        <asp:TemplateField HeaderText="Full Name" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                <p>
                                    <%#DataBinder.Eval(Container.DataItem, "Owner.FirstName")%>
                                    &nbsp;&nbsp;
                                    <%#DataBinder.Eval(Container.DataItem, "Owner.LastName")%>
                                </p>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Remove" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center">
                            <ItemTemplate>
                                <span style="cursor: pointer">
                                    <asp:LinkButton ID="ImgRemove" runat="server" CommandName="Delete" CommandArgument='<%# Eval("ID") %>'
                                        Text="Remove" OnClientClick="return confirm(Are you sure you want to remove this Delegate);">
                                    </asp:LinkButton></span>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                                    </asp:GridView>

私がやりたいことは、ユーザーがボタンのサーバー側コード (つまり、行コマンド) を押した場合に確認ボックスを表示することです。それ以外の場合は、キャンセルすると何もしません。しかし、それは機能していません。

4

3 に答える 3

1

confirm()関数のコードが無効です。

confirm()文字列変数(window.confirm を参照)が必要ですが、あなたの場合、無効なオブジェクトを渡しているため、エラーが発生します

キャッチされていない SyntaxError: 予期しない識別子

コードを次のように更新します。

<asp:LinkButton 
    ID="ImgRemove" 
    runat="server" 
    CommandName="Delete" 
    CommandArgument='<%# Eval("ID") %>' 
    Text="Remove" OnClientClick="return confirm('Are you sure you want to remove this Delegate');">
于 2013-08-06T09:55:04.113 に答える
0

私の提案は、 OnClientClick に一重引用符を追加することです

OnClientClick="return confirm('Are you sure you want to remove this Delegate');

次のコードを試すこともできます。

OnClientClick="if (!confirm('Are you sure you want to remove this Delegate')) return false;" 
于 2013-08-06T09:50:58.057 に答える
0

以下のスニペットを試してください。

<asp:LinkButton ID="ImgRemove" runat="server" CommandName="Delete" CommandArgument='<%# Eval("ID") %>' Text="Remove" OnClientClick="if (!confirm('Are you sure you want to remove this Delegate?'));">
  • OnClientClick="if (!confirm('Are you sure you want to remove this Delegate?'));
    はい/いいえのオプションでアラートが表示されます。いいえをクリックすると、何も起こりません。はいをクリックすると、対応するコードが実行されます
于 2013-08-06T09:51:49.460 に答える