检查更改事件未在嵌套gridview中触发

时间:2016-02-17 14:07:26

标签: javascript c# jquery asp.net gridview

我使用过嵌套的网格视图,它包含具有checkedchange事件的复选框,该事件未被触发。在选择外部网格复选框时,将检查所有内部复选框。 我已经对AutoEventWireUp,EnableEventValidation等进行了所有必需的更改。

    <div class="widget yellow">
        <div class="widget-title">
        </div>
        <div class="form-horizontal" runat="server">

            <asp:UpdatePanel ID="pnlData" runat="server">
                <ContentTemplate>
                    <div id="dvScreenWidth" runat="server" visible="false"></div>
                    <div class="GridDock" id="dvGridWidth"  runat="server">

                        <asp:GridView ID="gdvMaster" runat="server" Width="100%" OnRowDataBound="gdvMaster_RowDataBound" OnPageIndexChanging="gdvMaster_PageIndexChanging" AutoGenerateColumns="False" PagerStyle-HorizontalAlign="Right" DataKeyNames="customer_trx_id" ForeColor="Black">
                            <HeaderStyle CssClass="gradHeader"  />
                            <Columns>
                                <asp:BoundField DataField="invoice_no" HeaderText="Invoice Num">
                                    <ItemStyle HorizontalAlign="Left" />
                                    <HeaderStyle VerticalAlign="Top" />
                                </asp:BoundField>
                                <asp:BoundField DataField="Doc_date" HeaderText="Invoice Date">
                                    <ItemStyle HorizontalAlign="Left" />
                                    <HeaderStyle VerticalAlign="Top" />
                                </asp:BoundField>
                                <asp:BoundField DataField="sale_amt" HeaderText="Invoice Amount">
                                    <ItemStyle HorizontalAlign="Right" />
                                    <HeaderStyle VerticalAlign="Top" />
                                </asp:BoundField>
                                <asp:TemplateField>
                                    <HeaderTemplate>
                                        Item Details
                                    </HeaderTemplate>
                                    <ItemTemplate>

                                        <asp:HiddenField ID="hcustomer_trx_id" runat="server" Value='<%# Eval("customer_trx_id") %>' />


                                        <asp:GridView ID="itm_dtls"  BackColor="#cccccc" Width="100%"  runat="server" AutoGenerateColumns="false" PagerStyle-HorizontalAlign="Right" OnRowDataBound="itm_dtls_RowDataBound" GridLines="Both" BorderWidth="1">
                                            <Columns>

                                                <asp:BoundField DataField="Item_cd" HeaderStyle-VerticalAlign="top" ItemStyle-Width="10%" ItemStyle-Wrap="true" HeaderText="Item Code"
                                                    ItemStyle-HorizontalAlign="left" />
                                                <asp:BoundField DataField="itm_nm" HeaderStyle-VerticalAlign="top" ItemStyle-Width="40%" ItemStyle-Wrap="true" HeaderText="Item Name"
                                                    ItemStyle-HorizontalAlign="left" />
                                                <asp:BoundField DataField="qty" HeaderStyle-VerticalAlign="top" ItemStyle-Width="15%" ItemStyle-Wrap="true" HeaderText="Invoice Qty"
                                                    ItemStyle-HorizontalAlign="Center" />

                                                <asp:TemplateField
                                                    ItemStyle-Wrap="true">
                                                    <HeaderTemplate>Qty Rcvd</HeaderTemplate>
                                                    <ItemTemplate>
                                                        <asp:TextBox ID="rcvd_qty" runat="server" Text='<%#Eval("Qty")  %>' CssClass="flatbox2 input-mini"></asp:TextBox>
                                                    </ItemTemplate>
                                                </asp:TemplateField>

                                                <asp:TemplateField
                                                    ItemStyle-Wrap="true">
                                                    <HeaderTemplate>BAD Qty Rcvd</HeaderTemplate>
                                                    <ItemTemplate>
                                                        <asp:TextBox ID="bad_rcvd_qty" runat="server" Text="0" CssClass="flatbox2 input-mini"></asp:TextBox>
                                                    </ItemTemplate>
                                                </asp:TemplateField>

                                                <asp:TemplateField
                                                    ItemStyle-Wrap="true">
                                                    <HeaderTemplate>Short Qty Rcvd</HeaderTemplate>
                                                    <ItemTemplate>
                                                        <asp:TextBox ID="shrt_rcvd_qty" runat="server" Text="0" CssClass="flatbox2 input-mini"></asp:TextBox>
                                                    </ItemTemplate>
                                                </asp:TemplateField>
                                                <asp:TemplateField ItemStyle-Width="10%" ItemStyle-Wrap="true">
                                                    <HeaderTemplate>
                                                        <asp:CheckBox ID="chkSelectAll" runat="server" TextAlign="Right"
                                                            AutoPostBack="true" ViewStateMode="Enabled" OnCheckedChanged="chkSelectAll_CheckedChanged" />
                                                    </HeaderTemplate>

                                                    <ItemTemplate>
                                                        <asp:CheckBox ID="chk" runat="server" TextAlign="Right" />
                                                    </ItemTemplate>
                                                </asp:TemplateField>
                                            </Columns>
                                        </asp:GridView>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:BoundField DataField="customer_trx_id" Visible="false" />
                            </Columns>
                            <RowStyle BackColor="#EFF3FB" />
                            <FooterStyle BackColor="LightGray" Font-Bold="True" ForeColor="Black" />
                            <EditRowStyle BackColor="#2461BF" />
                            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                            <PagerStyle HorizontalAlign="Center" />
                            <AlternatingRowStyle BackColor="#f5e1ff" />
                        </asp:GridView>
                    </div>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
            <asp:Label ID="Label6" runat="server" Text=""></asp:Label>
        </div>

    </div>

    <div style="text-align: center">
        <div class="form-actions">
            <asp:Button ID="Button1" runat="server" Text="submit" CssClass="btn btn-success" OnClick="Button1_Click" />
        </div>
    </div>
</div>

检查更改事件,但在检查更改时未触发 .cs代码

 protected void chkSelectAll_CheckedChanged(object sender, EventArgs e)
    {
        try
        {
            string str_query = "Accept_report.aspx?receipt_num=" + Session["S_receipt_no"].ToString();
            Response.Redirect(str_query);

            CheckBox ck2 = (CheckBox)sender;
            string x_info = ck2.Text.ToString();
            string x_info1 = ck2.ID.ToString();
            string X22 = ck2.ClientID.ToString();


            GridViewRow gvr = gdvMaster.Rows[Convert.ToInt32(x_info)];
            GridView gv = (GridView)gvr.FindControl("itm_dtls");

            for (int i = 0; i < gv.Rows.Count; i++)
            {
                GridViewRow row = gv.Rows[i];
                CheckBox cck = ((CheckBox)row.FindControl("chk"));
                if (ck2.Checked == true)
                {
                    cck.Checked = true;
                }
                else
                {
                    cck.Checked = false;
                }
            }

        }
        catch (Exception ex)
        {

            ExceptionLogging.SendExcepToDB(ex);
            Label1.Text = "Some Technical Error occurred,Please visit after some time";

        }
    }

Javascript用于计算

<script type="text/javascript">
    function Check_tot(chk_id, actual_rcpt_qty, qty_rcvd, qty_rcvd_bad, qty_rcv_short) {
        if (document.getElementById(chk_id).checked) {
            var tot_chk;
            tot_chk = parseFloat(document.getElementById(qty_rcvd).value) + parseFloat(document.getElementById(qty_rcvd_bad).value) + parseFloat(document.getElementById(qty_rcv_short).value);

            if (parseFloat(tot_chk) < parseFloat(actual_rcpt_qty)) {
                alert("The Received Qty+Qty Received Bad+Qty Received Short should not be less than Invoice Qty.");
                document.getElementById(chk_id).checked = false;
            }
        }
    }

    function Check_val(actual_rcpt_qty, qty_rcvd, qty_rcvd_bad, qty_rcv_short, trns_text) {
        var tot;
        var loc_qty_rcvd;
        var loc_qty_rcvd_bad;
        var loc_qty_rcvd_shrt;
        var err_flag;

        loc_qty_rcvd = document.getElementById(qty_rcvd).value;
        loc_qty_rcvd_bad = document.getElementById(qty_rcvd_bad).value;
        loc_qty_rcvd_shrt = document.getElementById(qty_rcv_short).value;

        err_flag = "1";

        if (isNaN(loc_qty_rcvd) == true) {
            alert("Please Enter Numeric Value");
            document.getElementById(qty_rcvd).focus();
            err_flag = "0";
        }
        if (isNaN(loc_qty_rcvd_bad) == true) {
            alert("Please Enter Numeric Value");
            document.getElementById(qty_rcvd_bad).focus();
            err_flag = "0";
        }

        if (isNaN(loc_qty_rcvd_shrt) == true) {
            alert("Please Enter Numeric Value");
            document.getElementById(qty_rcvd_bad).focus();
            err_flag = "0";
        }

        if (err_flag == "1") {
            tot = parseFloat(document.getElementById(qty_rcvd).value) + parseFloat(document.getElementById(qty_rcvd_bad).value) + parseFloat(document.getElementById(qty_rcv_short).value);
            if (parseFloat(tot) > parseFloat(actual_rcpt_qty)) {
                alert("The Qty Rcvd and Qty Rcvd Bad Should not grater than Invoice Qty.");
                document.getElementById(trns_text).value = 0;
                document.getElementById(trns_text).focus();
            }
        }
    }
</script>

0 个答案:

没有答案