aspx Code:
<asp:updatepanel runat="server" id="ad">
<contenttemplate>
<div class="panel-heading">
<asp:button id="btnAdd" runat="server" text="Add New User" onclick="Add" class="btn btn-success pull-right mr15"></asp:button></div>
<div class="panel-body">
<asp:gridview id="gvHRM" runat="server" autogeneratecolumns="False" datakeynames="intUserId" onprerender="gvHRM_PreRender" cssclass="table table-striped table-hover">
<columns>
<asp:boundfield datafield="varUserRole" headertext="User Roles" sortexpression="varUserRole"></asp:boundfield>
<asp:boundfield datafield="varUserName" headertext="User Name" sortexpression="varUser">
<asp:boundfield datafield="varPwd" headertext="Password" sortexpression="varPassword">
<asp:templatefield headertext="Valid On">
</asp:templatefield>
<asp:templatefield headertext="">
<itemtemplate>
<asp:button id="btnDetail" runat="server" text="Details" onclick="Detail" commandargument="<%# Eval("intUserId") %>" <!--="" newline="" --=""> class="btn btn-primary" />
</asp:button></itemtemplate>
</asp:templatefield>
<asp:templatefield headertext="">
<itemtemplate>
<asp:button id="btnEdit" runat="server" text="Edit" onclick="Edit" commandargument="<%# Eval("intUserId") %>" <!--="" newline="" --=""> class="btn btn-primary" />
</asp:button></itemtemplate>
</asp:templatefield>
<asp:templatefield headertext="">
<itemtemplate>
<asp:button id="btnDelete" runat="server" text="Delete" onclick="Delete" commandargument="<%# Eval("intUserId") %>" <!--="" newline="" --=""> class="btn btn-danger" />
</asp:button></itemtemplate>
</asp:templatefield>
</asp:boundfield></asp:boundfield></columns>
</asp:gridview>
</div>
</contenttemplate>
</asp:updatepanel>
On cs page, first prerender Table Header, Footer on page init.
protected void gvHRM_PreRender(object sender, EventArgs e)
{
gvHRM.UseAccessibleHeader = false;
gvHRM.HeaderRow.TableSection = TableRowSection.TableHeader;
gvHRM.FooterRow.TableSection = TableRowSection.TableFooter;
int CellCount = gvHRM.FooterRow.Cells.Count;
gvHRM.FooterRow.Cells.Clear();
gvHRM.FooterRow.Cells.Add(new TableCell());
gvHRM.FooterRow.Cells[0].ColumnSpan = CellCount - 1;
gvHRM.FooterRow.Cells[0].HorizontalAlign = HorizontalAlign.Right;
gvHRM.FooterRow.Cells.Add(new TableCell());
TableFooterRow tfr = new TableFooterRow();
for (int i = 0; i < CellCount; i++)
{
tfr.Cells.Add(new TableCell());
}
gvHRM.FooterRow.Controls[1].Controls.Add(tfr);
}
The id for the gridview generated as
dashboard_gvHRM
so that we use dashboard_gvHRM as a id in the js file,
<blockquote class="quote"><div class="op">Quote:</div>$(function () {
var table = $('#dashboard_gvHRM').DataTable({
buttons: ['copy', 'csv', 'excel', 'pdf', 'print'],
lengthMenu: [[5, 10, 25, 50, -1], [5, 10, 25, 50, "All"]],
stateSave: true,
dom: "<'row be-datatable-header'<'col-sm-3'l><'col-sm-4'B><'col-sm-5'f>><'row be-datatable-body'<'col-sm-12'tr>><'row be-datatable-footer'<'col-sm-5'i><'col-sm-7'p>>"
});
});</blockquote>
and for update panel render call it as,
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm != null) {
prm.add_endRequest(function (sender, e) {
var table = $('#dashboard_gvHRM').DataTable({
buttons: ['copy', 'csv', 'excel', 'pdf', 'print'],
lengthMenu: [[5, 10, 25, 50, -1], [5, 10, 25, 50, "All"]],
stateSave: true,
dom: "<'row be-datatable-header'<'col-sm-3'l><'col-sm-4'B><'col-sm-5'f>><'row be-datatable-body'<'col-sm-12'tr>><'row be-datatable-footer'<'col-sm-5'i><'col-sm-7'p>>"
});
});