0

confirmation BoxユーザーがCheckBox.

だから私はを持っていてGridView、の列がありますCheckBoxes
したがって、ユーザーがチェックCheckBoxボックスを表示するたびに確認ボックスを表示し、ユーザーがそのボックスでキャンセルをクリックすると、チェックを外したいと思いますCheckBox。ユーザーが[OK]を押すと、データベース作業を行っている
標準のasp.netを起動したいと思います。またはでそれ を行う方法がわかりません。 Google で見つけたのは 1 つだけで、 を使用でき、を使用してポップアップを表示できます。しかし、私は GridView を持っており、行ごとにたくさんあります。CheckBox_CheckedChanged
javascriptJquery
CheckBoxIDJquery
CheckBoxes

実用的な例またはコードを提案してください。

ありがとう

** * **編集** * ** * * ここに私がこれまでに得たコードがあります。

$('#gvOrders').click(function () {
        var checked = $(this).is(':checked');
        if (checked) {
            document.getElementById("confirm_value").value = "Yes";
            if (!confirm('Are you sure you want to mark this order as received?')) {
                $(this).removeAttr('checked');
            }
        }
        else {
            document.getElementById("confirm_value").value = "No";
            if (!confirm('Are you sure you want to mark this order as  not received?')) {
                $(this).removeAttr('checked');
        }
    });

CheckBoxチェックすると、これは今のところ機能していません。ここで何が間違っているのかわかりません。

***グリッドビューの HTML** * ****

  <asp:GridView ID="gvOrders" runat="server" AutoGenerateColumns="false" CssClass="gvClickCollectOrders"
    DataKeyNames="ac_OrderId" OnRowDataBound="gvOrders_RowDataBound" AllowPaging="true">
    <Columns>
        <asp:BoundField DataField="ac_OrderId" Visible="false" />
        <asp:BoundField DataField="ac_OrderNumber" HeaderText="Order No" DataFormatString="WWW{0}" />
         <asp:TemplateField HeaderText="Order Date">
            <ItemTemplate>
                <%# GetOrderDate(AlwaysConvert.ToInt(Eval("ac_OrderId"))) %>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Customer Name">
            <ItemTemplate>
                <%# Eval("CustomerFirstName") %>&nbsp;<%# Eval("CustomerLastName") %>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Received In Store">
            <ItemTemplate>
                <asp:CheckBox ID="cbIsReceived" runat="server" AutoPostBack="true" Checked='<%# Eval("IsReceived") %>'
                    OnCheckedChanged="cbIsReceived_CheckedChanged"/>
                    <asp:Label ID="receivedDateText" Text="" runat="server"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Collected By Customer">
            <ItemTemplate>
                <asp:CheckBox ID="cbIsCollected" runat="server" AutoPostBack="true" Checked='<%# Eval("IsCollected") %>'
                    OnCheckedChanged="cbIsCollected_CheckedChanged" />
                    <asp:Label ID="collectedDateText" Text="" runat="server"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <EmptyDataTemplate>
        <asp:Label ID="emptyGrid" runat="server" Text="there are no Click and Collect orders placed for the selected store."
            CssClass="emptyGridMessage"></asp:Label>
    </EmptyDataTemplate>
</asp:GridView>
4

3 に答える 3

3

jQuery の使用

いくつかのクラスを gridview チェックボックスに割り当て、そのクラスにイベントをバインドします。

<asp:CheckBox id="chkChoice" runat="server" class="some-class" ></asp:CheckBox>    

$('.some-class').click(function () {
    var checked = $(this).is(':checked');
    if (checked) {
        document.getElementById("confirm_value").value = "Yes";
        if (!confirm('Are you sure you want to mark this order as received?')) {
            $(this).removeAttr('checked');
        }
    }
    else {
        document.getElementById("confirm_value").value = "No";
        if (!confirm('Are you sure you want to mark this order as  not received?')) {
            $(this).removeAttr('checked');

        }
    }
    //return someVariableHoldTrueOrFalseForPostBack
    //return true of false from here.
});

JavaScript の使用

チェックボックスにJavaScriptイベントをバインドすると、グリッドの各行の生成されたすべてのチェックボックスに自動的に適用されます。

<asp:CheckBox id="chkChoice" runat="server" OnClientClick="return yourFunction(this)" ></asp:CheckBox>

function yourFunction(source)
{
     return confirm("your message"); 
}
于 2013-02-04T10:23:27.817 に答える