我使用过嵌套的网格视图,它包含具有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>