This is a migrated thread and some comments may be shown as answers.

AllowCustomPaging=true and pagesize

2 Answers 215 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Marcel
Top achievements
Rank 1
Marcel asked on 10 Jan 2013, 08:10 AM
Hi there,

I cannot get the correct pagesize selected when I use AllowCustomPaging="true".
When you look in the code below I can see PAGESIZE_NEW is set to the new pagesize selected (f.e. 50) in the grHit_PageSizeChanged event.
After that it hits the grHit_NeedDataSource event. The PAGESIZE variable is set to it's original value of 25 instead of 50 like the value in the grHit_PageSizeChanged event.

Any idea?

I am using Telerik: 202.3.1016.35.


Regards,

Marcel

    <head>
        <title>HitGrid</title>
    </head>
    <body
        <telerik:RadGrid ID="grHit" runat="server"
            OnNeedDataSource="grHit_NeedDataSource"
            OnDetailTableDataBind="grHit_DetailTableDataBind"  OnPageSizeChanged="grHit_PageSizeChanged"
            OnItemCreated="grHit_ItemCreated">
 
            <MasterTableView AutoGenerateColumns="False"
                AllowSorting="true"
                AllowNaturalSort="false"
                AllowFilteringByColumn="true"
                AllowPaging="true"
                AllowCustomPaging="true"
                DataKeyNames="Date hit, User id, Application id, Function id">
 
                <Columns>
                    <telerik:GridDateTimeColumn UniqueName="coDateHit" HeaderText="Date"
                        MinDate="1899/12/30"
                        DataField="Date hit" >
                    </telerik:GridDateTimeColumn>
                     
                    <telerik:GridBoundColumn UniqueName="coUserName" HeaderText="User"
                        DataField="User name" >
                    </telerik:GridBoundColumn>
                     
                    <telerik:GridBoundColumn UniqueName="coFunctionName" HeaderText="Function"
                        DataField="Function name" >
                    </telerik:GridBoundColumn>
                      
                    <telerik:GridBoundColumn UniqueName="coIPAddress" HeaderText="IP address"
                        DataField="User host address" >
                    </telerik:GridBoundColumn>
                     
                    <telerik:GridBoundColumn UniqueName="coBrowser" HeaderText="Browser"
                        DataField="Browser" >
                    </telerik:GridBoundColumn>
                </Columns>
 
                <DetailTables>
                    <telerik:GridTableView Name="HitDetail"
                        AutoGenerateColumns="False"
                        ShowHeader="false"
                        Width="100%">
                         
                        <Columns>
                            <telerik:GridBoundColumn UniqueName="coColumn1"
                                DataField="Column 1" >
                            </telerik:GridBoundColumn>
                             
                            <telerik:GridBoundColumn UniqueName="coColumn2"
                                DataField="Column 2" >
                            </telerik:GridBoundColumn>
                        </Columns>
                         
                    </telerik:GridTableView>
                </DetailTables>
 
            </MasterTableView>
             
        </telerik:RadGrid>
    </body>
</html>

public partial class HitGrid : System.Web.UI.UserControl
    {
        public int WIDTH
        {
            //totale breedte
            set
            {
                grHit.Width = Unit.Percentage(value);
            }
        }
 
        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }
 
        private void InitializeComponent()
        {
            //sorting
            Telerik.Web.UI.GridSortExpression sortExpr = new Telerik.Web.UI.GridSortExpression();
            sortExpr.FieldName = "Date hit";
            sortExpr.SortOrder = Telerik.Web.UI.GridSortOrder.Descending;
            grHit.MasterTableView.SortExpressions.AddSortExpression(sortExpr);
 
            //paging
            grHit.PageSize = Convert.ToInt16(ConfigurationManager.AppSettings.Get("Page size"));
        }
 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //initialise
                HITGRID_INIT();
            }
        }
 
        private void HITGRID_INIT()
        {}
 
        protected void grHit_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
        {
            if (e.Item is Telerik.Web.UI.GridFilteringItem)
            {
                Telerik.Web.UI.GridFilteringItem FilterItem = e.Item as Telerik.Web.UI.GridFilteringItem;
 
                //User
                TextBox txtUserName = FilterItem["coUserName"].Controls[0] as TextBox;
                txtUserName.Width = Unit.Pixel(100);
 
                //Function
                TextBox txtFunctionName = FilterItem["coFunctionName"].Controls[0] as TextBox;
                txtFunctionName.Width = Unit.Pixel(100);
 
                //IP address
                TextBox txtIPAddress = FilterItem["coIPAddress"].Controls[0] as TextBox;
                txtIPAddress.Width = Unit.Pixel(80);
 
                //Browser
                TextBox txtBrowser = FilterItem["coBrowser"].Controls[0] as TextBox;
                txtBrowser.Width = Unit.Pixel(100);
            }
        }
 
        protected void grHit_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            int PAGESIZE = grHit.PageSize;
 
            //get hits
            NMHG.Data.NMHGHome.HOH100PF.GetHits2 HOH100PF_List = new NMHG.Data.NMHGHome.HOH100PF.GetHits2();
            HOH100PF_List.H1APID = "";
            HOH100PF_List.H1USID = "";
            HOH100PF_List.PageNumber = grHit.CurrentPageIndex;
            HOH100PF_List.Main();
 
            //fill grid
            grHit.DataSource = HOH100PF_List.HitTable;
 
            //set virtual item count
            grHit.VirtualItemCount = HOH100PF_List.COUNT;
        }
 
        protected void grHit_PageSizeChanged(object source, Telerik.Web.UI.GridPageSizeChangedEventArgs e)
        {
            int PAGESIZE_NEW = e.NewPageSize;
        }
 
        protected void grHit_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
        {
            Telerik.Web.UI.GridDataItem DataItem = (Telerik.Web.UI.GridDataItem)e.DetailTableView.ParentItem;
            switch (e.DetailTableView.Name)
            {
                case "HitDetail":     //Hit detail
 
                    //get hit
                    NMHG.Data.NMHGHome.HOH100PF.Hit HOH100PF = new NMHG.Data.NMHGHome.HOH100PF.Hit();
                    HOH100PF.H1DATE = (DateTime)DataItem.GetDataKeyValue("Date hit");          //Date hit
                    HOH100PF.H1USID = DataItem.GetDataKeyValue("User id").ToString();           //User id
                    HOH100PF.H1APID = DataItem.GetDataKeyValue("Application id").ToString();    //Application id
                    HOH100PF.H1FNID = DataItem.GetDataKeyValue("Function id").ToString();       //Function id
                    HOH100PF.GetHit();
 
                    //initialise datatable
                    DataTable HitTable = new DataTable("Hit detail data");
                    HitTable.Columns.Add("Column 1", System.Type.GetType("System.String"));
                    HitTable.Columns.Add("Column 2", System.Type.GetType("System.String"));
 
                    //Date
                    DataRow HitRow = HitTable.NewRow();
                    HitRow["Column 1"] = "Date:";
                    HitRow["Column 2"] = HOH100PF.H1DATE;
                    HitTable.Rows.Add(HitRow);
 
                    //get username
                    NMHG.Data.NMHGHome.AUUS00PF.User AUUS00PF = new NMHG.Data.NMHGHome.AUUS00PF.User();
                    AUUS00PF.USUSID = HOH100PF.H1USID;
                    AUUS00PF.GetUser();
 
                    //User
                    HitRow = HitTable.NewRow();
                    HitRow["Column 1"] = "User:";
                    HitRow["Column 2"] = AUUS00PF.USUSNM;
                    HitTable.Rows.Add(HitRow);
 
                    //get application function name
                    NMHG.Data.NMHGHome.AUAF00PF.ApplicationFunction AUAF00PF = new NMHG.Data.NMHGHome.AUAF00PF.ApplicationFunction();
                    AUAF00PF.AFAPID = HOH100PF.H1APID;
                    AUAF00PF.AFFNID = HOH100PF.H1FNID;
                    AUAF00PF.GetApplicationFunction();
 
                    //Function
                    HitRow = HitTable.NewRow();
                    HitRow["Column 1"] = "Function:";
                    HitRow["Column 2"] = AUAF00PF.AFFNNM;
                    HitTable.Rows.Add(HitRow);
 
                    //URL
                    HitRow = HitTable.NewRow();
                    HitRow["Column 1"] = "URL:";
                    HitRow["Column 2"] = HOH100PF.H1URL;
                    HitTable.Rows.Add(HitRow);
 
                    //IP address
                    HitRow = HitTable.NewRow();
                    HitRow["Column 1"] = "IP address:";
                    HitRow["Column 2"] = HOH100PF.H1ADDR;
                    HitTable.Rows.Add(HitRow);
 
                    //Platform
                    HitRow = HitTable.NewRow();
                    HitRow["Column 1"] = "Platform:";
                    HitRow["Column 2"] = HOH100PF.H1PLAT;
                    HitTable.Rows.Add(HitRow);
 
                    //Browser
                    HitRow = HitTable.NewRow();
                    HitRow["Column 1"] = "Browser:";
                    HitRow["Column 2"] = HOH100PF.H1BRWS;
                    HitTable.Rows.Add(HitRow);
 
                    //fill grid
                    grHit.DataSource = HitTable;
 
                    break;
            }
        }
    }

2 Answers, 1 is accepted

Sort by
0
Kaushal
Top achievements
Rank 2
answered on 10 Jan 2013, 01:48 PM
Hi Marcel,

Try setting the Page size as bellow will do the fix.

protected void grHit_PageSizeChanged(object source, Telerik.Web.UI.GridPageSizeChangedEventArgs e)
{
   grHit.PageSize = e.NewPageSize;
}

0
Marcel
Top achievements
Rank 1
answered on 10 Jan 2013, 06:48 PM
Hi Kaushal,

Thanx, it is indeed working.
Allthough I would expect the new pagesize should be available in the NeedDataSource event without setting it in the PageSizeChanged ev
ent.


Regards,
Marcel
Tags
Grid
Asked by
Marcel
Top achievements
Rank 1
Answers by
Kaushal
Top achievements
Rank 2
Marcel
Top achievements
Rank 1
Share this question
or