Dynamically load ASP.NET paging control

xiaoxiao2021-03-05  22

in

ASP.NET

The dynamic load control is relatively simple. Here I will have the load on the user control. The typical is to contain a rapid event in the loaded user control. It is necessary to keep new data when returning.

First build a paging user control, because the previous articles are talking about these things, so they will change them directly, and the pagper code can view the above article 1, the article 2, below is part of the user control.

Public class pagingControl: system.Web.ui.userControl

{

PRIVATE INT pageCOUNT;

PRIVATE INT RecordCount;

......

Private Void Page_Load (Object Sender, System.EventArgs E)

{

IF (! page.ispostback)

{

DataGriddatabind ();

}

}

// Binding data

Private void DataGridDataBind ()

{

DataSet DS = GetCustomersdata (PageIndex, PageSize, Ref Recordcount, Ref PageCount);

THIS.DATAGRID1.VIRTUALITEMCOUNT = RecordCount;

THIS.DATAGRID1.DATASOURCE = DS;

THIS.DATAGRID1.DATABIND ();

SetPagingState ();

}

// Bind a new page

Private void lbtnnavigation_click (Object Sender, System.Eventargs E)

{

LinkButton BTN = (LinkButton) Sender;

Switch (btn.commandname)

{

Case "first":

PageIndex = 0;

Break;

Case "prev":

PageIndex = PageIndex - 1;

Break;

Case "Next":

PageIndex = PageIndex 1;

Break;

Case "Last":

PageIndex = PageCount - 1;

Break;

}

DataGriddatabind ();

}

......

}

On the above, we noticed that if the IF (! Page.ispostback) is determined in the page load event to prevent twice a binding when the return load is made, because the first time does not necessarily, it is finally determined by the binding in lbtnnaVigation_click.

Suppose PagingControl.ascx is the file name of the user control above, and the Page page file is in the same directory, below is the code of the ASPNetCommonPaging.aspx file. For dynamic loading, a PlaceHolder control is put on the page to load the previous user control.

The front desk document is as follows:

<% @ Page language = "c #" codebehind = "aspnetcommonpaging.aspx.cs" autoeventwireup = "false" inherits = "aspnetpaging.aspnetcommonpaging"%>%>

3C

// DTD HTML 4.0 Transitional // En ">

aspnetcommonpaging </ title> </ head></p> <p><body></p> <p><form id = "form1" method = "post" runat = "server"></p> <p><asp: placeholder id = "PlaceHolder1" runat = "server"> </ asp: placeholder></p> <p></ form></p> <p></ body></p> <p></ Html></p> <p>The background code file is also relatively simple:</p> <p>Namespace aspnetpaging</p> <p>{</p> <p>Public class aspnetcommonpage: system.web.ui.page</p> <p>{</p> <p>protected system.Web.ui.WebControls.PlaceHolder PlaceHolder1;</p> <p>Private Void Page_Load (Object Sender, System.EventArgs E)</p> <p>{</p> <p>PlaceHolder1.controls.add ("~ / PagingControl.ascx");</p> <p>}</p> <p>#Region web form designer generated code</p> <p>Override protected void oninit (Eventargs E)</p> <p>{</p> <p>InitializationComponent ();</p> <p>Base.onit (E);</p> <p>}</p> <p>/// <summary></p> <p>/// Designer supports the required method - do not use the code editor to modify</p> <p>/// This method is content.</p> <p>/// </ summary></p> <p>Private vidinitiRizeComponent ()</p> <p>{</p> <p>This.Load = New System.EventHandler (this.page_load);</p> <p>}</p> <p>#ndregion</p> <p>}</p> <p>}</p> <p>Here's PlaceHolder1.controls.add ("~ / PagingControl.ascx"))); is to load the PagingControl user control to the current page. If you don't want to use PlaceHolder, we can also use other container controls, just add to the Controls collection.</p> <p>Note that this will be processed in this way, it will not be loaded when the page is raised, then the paging event will not be triggered.</p> <p>Private Void Page_Load (Object Sender, System.EventArgs E)</p> <p>{</p> <p>IF (! page.ispostback)</p> <p>PlaceHolder1.controls.add ("~ / PagingControl.ascx");</p> <p>}</p> <p>Let us now take a look at the execution order of the main event: set the breakpoint to get the following order.</p> <p>First: Page OnInit Event -> Page Page_Load Event à Control OnInit Event à Control Page_Load Event.</p> <p>Turn pages: page OnInit event -> page Page_load event à Control OnInit event à control Page_load event à lbtnnaVigation_click page pagement event.</p> <p>If we put the page load code on the page OnInit event:</p> <p>Override protected void oninit (Eventargs E)</p> <p>{</p> <p>InitializationComponent ();</p> <p>PlaceHolder1.controls.add ("~ / PagingControl.ascx");</p> <p>Base.onit (e);</p> <p>So what is the order of execution of the event?</p> <p>For the first time: Page OnInit Event -> Control OnInit Event à Page Page_Load Event à Control Page_Load Event.</p> <p>Turn pages: Page OnInit Event -> Control OnInit Event à Page Page_Load Event à Control Page_Load Event à lbtnnaVigation_click Turn Transport Event.</p> <p>I think the interoperability of multiple controls, it is important to clear the execution of the event, and it also helps optimize the program to improve performance.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-38295.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="38295" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.031</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'oDHnHaPCYepfFhcWRNItGRo_2B6GVmuIJbknjemj1Wqiq2VPw2EMfpgDEn5xanfyZuqhBrNovdC5wkuImZ'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>