0

confirmation Box用户检查CheckBox.

所以我有一个GridView并且有一个列CheckBoxes
因此,每当用户选中CheckBox我想显示一个确认框时,当用户单击该框上的取消时,我想取消选中它CheckBox
当用户按 OK 时,我想启动一个标准的 asp.net CheckBox_CheckedChanged,我正在那里做一些数据库工作。
我不知道如何在javascriptor中做到这一点Jquery
我在谷歌上找到了它,那里只有一个CheckBox,你可以使用ID和使用Jquery你可以显示弹出窗口。
但是我有一个 GridView 并且每一行都有很多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 回答
1

使用以下代码

$(document).ready(function() {
 $("#gvOrders input:checkbox").click(function(e) {
    if ($(this).is(":checked")) {
        var m= confirm("your message");
        if(m !=true)
          {
              $(this).removeAttr('checked');
              e.preventDefault(); 
           }     
       });
});
于 2013-02-04T10:25:40.627 回答
1

选中复选框以显示弹出窗口

1.Create a div and design a popup as per your wish in your aspx page.
2.check if the checkbox is checked or not.
3.If it is checked then call the div as popup using its id.

c#代码:

if(checkedbox.checked==true)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "showpopup();", true); 
}

脚本:

  function showpopup() {
    $("#popup").fadeIn('slow');
    }

其中 #popup 是您创建的弹出 div 的 ID。

于 2013-02-04T10:38:35.523 回答