c# - On Publishing error - is not allowed here because it does not extend class 'System.Web.UI.UserControl' -
i have got following usercontrol
work fine when publish project facing error.
.. not allowed here because not extend class 'system.web.ui.usercontrol'
how fix it?
ascx
<%@ control language="c#" autoeventwireup="true" codebehind="datapagergridview.ascx.cs" inherits="verinformes.datapagergridview" %>
c#
public partial class datapagergridview : gridview, ipageableitemcontainer { private static readonly object eventtotalrowcountavailable = new object(); public int maximumrows { { return this.pagesize; } } public int startrowindex { { return this.pagesize * this.pageindex; } } public event eventhandler<pageeventargs> totalrowcountavailable { add { base.events.addhandler(datapagergridview.eventtotalrowcountavailable, value); } remove { base.events.removehandler(datapagergridview.eventtotalrowcountavailable, value); } } public void setpageproperties(int startrowindex, int maximumrows, bool databind) { int newpageindex = (startrowindex / maximumrows); this.pagesize = maximumrows; if (this.pageindex != newpageindex) { bool iscanceled = false; if (databind) { // create event arguments , raise event gridviewpageeventargs args = new gridviewpageeventargs(newpageindex); this.onpageindexchanging(args); iscanceled = args.cancel; newpageindex = args.newpageindex; } // if event wasn't cancelled change paging values if (!iscanceled) { this.pageindex = newpageindex; if (databind) this.onpageindexchanged(eventargs.empty); } if (databind) this.requiresdatabinding = true; } } protected virtual void ontotalrowcountavailable(pageeventargs e) { eventhandler<pageeventargs> handler = (eventhandler<pageeventargs>)base.events[datapagergridview.eventtotalrowcountavailable]; if (handler != null) { handler(this, e); } } protected override int createchildcontrols(ienumerable datasource, bool databinding) { int rows = base.createchildcontrols(datasource, databinding); // if paging feature enabled, determine total number of rows in datasource if (this.allowpaging) { // if databinding, use number of rows created, // otherwise cast datasource collection , use count int totalrowcount = databinding ? rows : ((icollection)datasource).count; // raise row count available event ipageableitemcontainer pageableitemcontainer = ipageableitemcontainer; this.ontotalrowcountavailable(new pageeventargs (pageableitemcontainer.startrowindex, pageableitemcontainer.maximumrows, totalrowcount)); // make sure top , bottom pager rows not visible if (this.toppagerrow != null) this.toppagerrow.visible = false; if (this.bottompagerrow != null) this.bottompagerrow.visible = false; } return rows; } protected void page_load(object sender, eventargs e) { } }
i reorganized code correct now.
public class mydatapagergridview : gridview, ipageableitemcontainer { private static readonly object eventtotalrowcountavailable = new object(); public int maximumrows { { return this.pagesize; } } public int startrowindex { { return this.pagesize * this.pageindex; } } public event eventhandler<pageeventargs> totalrowcountavailable { add { base.events.addhandler(mydatapagergridview.eventtotalrowcountavailable, value); } remove { base.events.removehandler(mydatapagergridview.eventtotalrowcountavailable, value); } } public void setpageproperties(int startrowindex, int maximumrows, bool databind) { int newpageindex = (startrowindex / maximumrows); this.pagesize = maximumrows; if (this.pageindex != newpageindex) { bool iscanceled = false; if (databind) { // create event arguments , raise event gridviewpageeventargs args = new gridviewpageeventargs(newpageindex); this.onpageindexchanging(args); iscanceled = args.cancel; newpageindex = args.newpageindex; } // if event wasn't cancelled change paging values if (!iscanceled) { this.pageindex = newpageindex; if (databind) this.onpageindexchanged(eventargs.empty); } if (databind) this.requiresdatabinding = true; } } protected virtual void ontotalrowcountavailable(pageeventargs e) { eventhandler<pageeventargs> handler = (eventhandler<pageeventargs>)base.events[mydatapagergridview.eventtotalrowcountavailable]; if (handler != null) { handler(this, e); } } protected override int createchildcontrols(ienumerable datasource, bool databinding) { int rows = base.createchildcontrols(datasource, databinding); // if paging feature enabled, determine total number of rows in datasource if (this.allowpaging) { // if databinding, use number of rows created, // otherwise cast datasource collection , use count int totalrowcount = databinding ? rows : ((icollection)datasource).count; // raise row count available event ipageableitemcontainer pageableitemcontainer = ipageableitemcontainer; this.ontotalrowcountavailable(new pageeventargs (pageableitemcontainer.startrowindex, pageableitemcontainer.maximumrows, totalrowcount)); // make sure top , bottom pager rows not visible if (this.toppagerrow != null) this.toppagerrow.visible = false; if (this.bottompagerrow != null) this.bottompagerrow.visible = false; } return rows; } } public partial class datapagergridview : usercontrol { public mydatapagergridview datapagergrid = new mydatapagergridview(); protected void page_load(object sender, eventargs e) { } }
Comments
Post a Comment