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