I'm using gridview to display recent bills in which I'm using buttons to show data in Modal Popup. The problem is that when I'm placing gridview inside updatepanel, the modal shows empty values or no values at all but when I place it outside updatepanel, the modal shows data properly. I'm not getting where the issue seems to exist.
below is my aspx markup for modal:
<div class="modal fade" id="RecieptModal">
<div class="modal-dialog">
<div class="modal-content mr-sm-n3">
<div class="modal-header bg-default-gradient">
<h4 class="modal-title">Print Label</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div id="dvQuickBillPrint">
<div class="modal-body">
<asp:Table ID="tbl1" runat="server" BorderStyle="None" GridLines="None" CssClass="table table-sm borderlessTable">
<asp:TableRow>
<asp:TableCell Style="border-collapse: collapse; border-style: hidden; border: hidden;">
<span class="float-left">
<b><span style="font-size: 12pt; font-family: Arial">Bill Date: </span></b>
<asp:Label ID="lblBillDate" runat="server" Style="font-size: 12pt; font-family: Arial; font-weight: bold"></asp:Label></span>
</asp:TableCell>
<asp:TableCell Style="border-collapse: collapse; border-style: hidden; border: hidden;">
<span class="float-right"><b><span style="font-size: 12pt; font-family: Arial">Bill Number: </span></b>
<asp:Label ID="lblBillNumber" runat="server" Style="font-size: 12pt; font-family: Arial; font-weight: bold"></asp:Label></span>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>
<span class="float-left">
<b><span style="font-size: 12pt; font-family: Arial">Name: </span></b>
<asp:Label ID="lblCustName" runat="server" Style="font-size: 12pt; font-family: Arial; font-weight: bold"></asp:Label></span>
</asp:TableCell>
<asp:TableCell>
<span class="float-right">
<b><span style="font-size: 12pt; font-family: Arial">Delivered on: </span></b>
<asp:Label ID="lblDelDate" runat="server" Style="font-size: 12pt; font-family: Arial; font-weight: bold"></asp:Label></span>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
<asp:GridView ID="grdQuickBillPrint" runat="server" CssClass="table table-responsive-sm table-bordered grdQuickBillPrint borderedAll" AutoGenerateColumns="False" ShowFooter="true" GridLines="Both" EmptyDataText="Data Not Available">
<Columns>
<asp:TemplateField HeaderText="Particulars" ItemStyle-Wrap="true" ItemStyle-Font-Bold="true" ItemStyle-Font-Size="12" ItemStyle-CssClass="wrap" ItemStyle-Font-Names="Arial">
<ItemTemplate>
<%# Eval("itemname")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Qty" ItemStyle-Wrap="false" ItemStyle-HorizontalAlign="Center" ItemStyle-Font-Bold="true" ItemStyle-Font-Names="Arial" ItemStyle-Font-Size="12">
<ItemTemplate>
<%# Eval("qtty")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Rate" ItemStyle-Wrap="false" ItemStyle-HorizontalAlign="Center" ItemStyle-Font-Bold="true" ItemStyle-Font-Size="12" ItemStyle-Font-Names="Arial">
<ItemTemplate>
<%# Eval("unitprice")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Line Total" ItemStyle-Wrap="false" ItemStyle-Font-Bold="true" ItemStyle-Font-Size="12" ItemStyle-Font-Names="Arial" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" HeaderStyle-CssClass="text-center">
<ItemTemplate>
<%# Eval("linetotal")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<div class="modal-footer bg-default-gradient">
<div class="pull-right">
<asp:LinkButton ID="lnkPrintLabel" runat="server" CssClass="btn btn-primary" Text="" OnClientClick="printQuickBillReceipt()" CausesValidation="false"><i class="fa fa-print"></i></asp:LinkButton>
</div>
</div>
</div>
</div>
</div>
below is the gridview markup:
<div class="card card-info card-outline">
<div class="card-header with-border">
<h3 class="card-title">Recent Bills</h3>
<div class="card-tools">
<asp:LinkButton ID="lnkSync" runat="server" CssClass="form-control form-control-sm btn btn-outline-success btn-sm" OnClick="BindBillsGridview"><i class="fa fa-sync"></i></asp:LinkButton>
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12">
<div class="form-group-sm">
<asp:GridView ID="Gridview1" runat="server" CssClass="table table-bordered dataTable table-responsive-sm table-dark gridviewDataTable" AutoGenerateColumns="False" EmptyDataText="No Data Available" HeaderStyle-CssClass="col-form-label-sm">
<Columns>
<asp:TemplateField HeaderText="KOT" HeaderStyle-Width="20px">
<ItemTemplate>
<asp:LinkButton ID="lnkGenerateKot" runat="server" CssClass="btn btn-warning btn-outline-warning btn-sm" CausesValidation="false" OnClick="lnkGenerateKot_Click" CommandArgument='<%# Eval("bno")%>'> <i class="fa fa-utensils"></i></asp:LinkButton>
<%-- Enabled='<%# Eval("remarks").ToString() != "NA" ? true : false %>' --%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Print" HeaderStyle-Width="20px">
<ItemTemplate>
<asp:LinkButton ID="lnkGenerateBill" runat="server" CssClass="btn btn-success btn-outline-success btn-sm" CausesValidation="false" OnClick="lnkGenerateBill_Click" CommandArgument='<%# Eval("bno")%>'> <i class="fa fa-print"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Complete" HeaderStyle-CssClass=" text-nowrap">
<ItemTemplate>
<asp:LinkButton ID="lnkComplete" runat="server" CssClass="btn btn-danger btn-outline-danger btn-sm" CausesValidation="false" OnClick="lnkComplete_Click" CommandArgument='<%# Eval("bno")%>'> <i class="fa fa-check"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Bill No." HeaderStyle-CssClass=" text-nowrap">
<ItemTemplate>
<asp:Label ID="lblOrderNumber" runat="server" CssClass="col-form-label-sm text-nowrap" Text='<%# Eval("bno")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Date" HeaderStyle-CssClass=" text-nowrap">
<ItemTemplate>
<asp:Label ID="lblcdate" runat="server" CssClass="col-form-label-sm text-nowrap" Text='<%# Eval("cdate")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" HeaderStyle-CssClass=" text-nowrap">
<ItemTemplate>
<asp:Label ID="lblcname" runat="server" CssClass="col-form-label-sm text-nowrap" Text='<%# Eval("name")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mobile" HeaderStyle-CssClass=" text-nowrap">
<ItemTemplate>
<asp:Label ID="lblmobileno" runat="server" CssClass="col-form-label-sm text-nowrap" Text='<%# Eval("mob")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Remarks">
<ItemTemplate>
<asp:Label ID="lblremarks" runat="server" CssClass="col-form-label-sm text-nowrap" Text='<%# Eval("remarks")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delivery" HeaderStyle-CssClass=" text-nowrap">
<ItemTemplate>
<asp:Label ID="lblddate" runat="server" CssClass="col-form-label-sm text-nowrap" Text='<%# Eval("ddate") + ", " + Eval("dtime") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</div>
javascript to open modal:
/*Show Bill Receipt*/
function openRecieptModal() {
$('[id*=RecieptModal]').modal('show');
}
c# code is below:
protected void lnkGenerateBill_Click(object sender, EventArgs e)
{
LinkButton lnkGenerateBill = (LinkButton)sender;
using (SqlConnection con = new SqlConnection(constring))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("select * from Sales where bno='" + lnkGenerateBill.CommandArgument + "'", con))
{
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
grdQuickBillPrint.DataSource = dt;
grdQuickBillPrint.DataBind();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
string subTotal = string.Empty, Total = string.Empty, Gst = string.Empty, Discount = string.Empty, Paid = string.Empty, Balance = string.Empty;
lblBillNumber.Text = dr["bno"].ToString();
lblBillDate.Text = dr["cdate"].ToString();
lblDelDate.Text = dr["ddate"].ToString();
lblCustName.Text = dr["name"].ToString();
subTotal = dr["totamt"].ToString();
Gst = dr["gstamt"].ToString();
Total = dr["grandtotal"].ToString();
Discount = dr["disc"].ToString();
Paid = dr["paidamt"].ToString();
Balance = dr["balamt"].ToString();
grdQuickBillPrint.FooterRow.Cells[3].Text = "<table class="+ "\"tabel table-sm table-borderless text-sm borderlessTable\" style=" + "\"border-collapse: collapse; border-style: hidden; border: hidden;\" ><tr><td>Sub-Total:</td><td>" + subTotal + "</td></tr><tr><td>GST:</td><td>" + Gst + "</td></tr><tr><td>Total:</td><td>" + Total + "</td></tr><tr><td>Discount:</td><td>" + Discount + "</td></tr><tr><td>Paid:</td><td>" + Paid + "</td></tr><tr><td>Balance:</td><td>" + Balance +"</td></tr></table>";
grdQuickBillPrint.FooterRow.Cells[3].Font.Size = 12;
grdQuickBillPrint.FooterRow.Cells[3].Font.Bold = true;
grdQuickBillPrint.FooterRow.Cells[3].Font.Name = "Arial";
grdQuickBillPrint.FooterRow.Cells[3].HorizontalAlign = HorizontalAlign.Left;
grdQuickBillPrint.HeaderRow.Cells[3].HorizontalAlign = HorizontalAlign.Right;
grdQuickBillPrint.GridLines = GridLines.Both;
}
}
//ClientScript.RegisterStartupScript(this.GetType(), "Pop", "openRecieptModal();", true);
ScriptManager.RegisterStartupScript(updtpnl, updtpnl.GetType(), "Pop", "openRecieptModal();", true);
}
con.Close();
}
}
please help me solve this..Thanks in advance!