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

Changing page size in combo box

5 Answers 198 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Taraman
Top achievements
Rank 1
Taraman asked on 03 Sep 2011, 01:27 PM
Hello,
I am using a paging in Grid, it is default paging combo box to 10,20,50

How can I change to fill it with 50,100,200?

thanks,
Mohamed Taraman

5 Answers, 1 is accepted

Sort by
0
Accepted
Jayesh Goyani
Top achievements
Rank 2
answered on 03 Sep 2011, 01:43 PM
Hello,

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)  
{  
    if (e.Item is GridPagerItem)  
    {  
        RadComboBox PageSizeCombo = (RadComboBox)e.Item.FindControl("PageSizeComboBox");  
   
        PageSizeCombo.Items.Clear();  
        PageSizeCombo.Items.Add(new RadComboBoxItem("10"));  
        PageSizeCombo.FindItemByText("50").Attributes.Add("ownerTableViewId", RadGrid1.MasterTableView.ClientID);  
        PageSizeCombo.Items.Add(new RadComboBoxItem("20"));  
        PageSizeCombo.FindItemByText("100").Attributes.Add("ownerTableViewId", RadGrid1.MasterTableView.ClientID);  
        PageSizeCombo.Items.Add(new RadComboBoxItem("50"));  
        PageSizeCombo.FindItemByText("200").Attributes.Add("ownerTableViewId", RadGrid1.MasterTableView.ClientID);  
 
        PageSizeCombo.FindItemByText(e.Item.OwnerTableView.PageSize.ToString()).Selected = true;
    }
}

let me know if any concern.

Thanks,
Jayesh Goyani
0
Jayesh Goyani
Top achievements
Rank 2
answered on 03 Sep 2011, 01:44 PM
Hello,

You can also add your Custom text also,
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
    {
    if (e.Item is  GridPagerItem)
        {
            GridPagerItem pager = (GridPagerItem)e.Item;
            RadComboBox PageSizeComboBox = (RadComboBox)pager.FindControl("PageSizeComboBox");
            RadComboBoxItem ComboItem = new RadComboBoxItem("All");
            PageSizeComboBox.Items.Insert(0, ComboItem);
            PageSizeComboBox.AutoPostBack = true;
            PageSizeComboBox.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(PageSizeComboBox_SelectedIndexChanged);
        }
    }
void PageSizeComboBox_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
   {
       //Handle the event
   }

let me know if any concern.

Thanks,
Jayesh Goyani
0
Taraman
Top achievements
Rank 1
answered on 04 Sep 2011, 04:55 AM
thanks Jayesh
it is working :)

thanks,
Mohamed Taraman

0
dexter
Top achievements
Rank 1
answered on 14 Sep 2011, 04:57 AM
Hi there,

I've tried the solution but the only problem i'm having is the line below. It keeps returning null:
PageSizeCombo.FindItemByText(e.Item.OwnerTableView.PageSize.ToString()).Selected =
true;

This is my code behind:

public partial class Admin : System.Web.UI.Page
  {
    FXGrid FXGrid1 = new FXGrid();
    protected void Page_Init(object sender, EventArgs e)
    {
      FXGrid1.DataBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
      System.Web.HttpBrowserCapabilities browser = Request.Browser;
      TextBox txt = (TextBox)toolbarMenu.FindControl("txtSearch");
     
 DataTable dt = new DataTable();
 dt.Columns.Add("Date");
      dt.Columns.Add("MessageNo");
      dt.Columns.Add("From");
      dt.Columns.Add("NoofPages");
      dt.Columns.Add("TrackingNo");
      dt.Columns.Add("Status");
      dt.Columns.Add("CallerID");

      DataRow messagesRow = dt.NewRow();
      messagesRow["Date"] = "ALFKI";
      messagesRow["MessageNo"] = "Alfreds Futterkiste";
      messagesRow["From"] = "Alfreds Futterkiste";
      messagesRow["NoofPages"] = "Alfreds Futterkiste";
      messagesRow["TrackingNo"] = "Alfreds Futterkiste";
      messagesRow["Status"] = "Alfreds Futterkiste";
      messagesRow["CallerID"] = "Alfreds Futterkiste";
      dt.Rows.Add(messagesRow);

      DataRow messagesRow2 = dt.NewRow();
      messagesRow2["Date"] = "ALFKI";
      messagesRow2["MessageNo"] = "Alfreds Futterkiste";
      messagesRow2["From"] = "Alfreds Futterkiste";
      messagesRow2["NoofPages"] = "Alfreds Futterkiste";
      messagesRow2["TrackingNo"] = "Alfreds Futterkiste";
      messagesRow2["Status"] = "Alfreds Futterkiste";
      messagesRow2["CallerID"] = "Alfreds Futterkiste";
      dt.Rows.Add(messagesRow2);
      dt.Columns.Add("<img id='edit' style='border:0px;cursor:pointer' src='../../Images/Outlook/Edit.gif'>").SetOrdinal(0);

      DataRow[] chkEdit = new DataRow[dt.Rows.Count];
      for (int row = 0; row < dt.Rows.Count; row++)
      {
        chkEdit[row] = dt.Rows[row];
        chkEdit[row]["<img id='edit' style='border:0px;cursor:pointer' src='../../Images/Outlook/Edit.gif'>"] = "<img style='cursor:pointer' src='../../Images/Outlook/Edit.gif' value='" + dt.Rows[row][1] + "' onclick='showWin(" + dt.Rows[row][1] + ", "+row+")'>";
      }
    
      GridClientSelectColumn gcsc = new GridClientSelectColumn();
      gcsc.Resizable = false;
      FXGrid1.rowCount = dt.Rows.Count;

      FXGrid1.MasterTableView.Width = Unit.Percentage(100);
      FXGrid1.MasterTableView.TableLayout = GridTableLayout.Fixed;

      /*RadGrid's common attributes*/
      FXGrid1.GridLines = GridLines.None;
      FXGrid1.ID = "RG1";
      FXGrid1.AllowPaging = true;
      FXGrid1.AllowSorting = true;
      FXGrid1.BorderWidth = Unit.Pixel(0);

      FXGrid1.PagerStyle.AlwaysVisible = true;
      FXGrid1.MasterTableView.TableLayout = GridTableLayout.Fixed;
     

      FXGrid1.ClientSettings.Scrolling.AllowScroll = true;
      FXGrid1.ClientSettings.Scrolling.UseStaticHeaders = true;
      FXGrid1.ClientSettings.ClientEvents.OnGridCreated = "getFwdAddr";
      ttlRow.Value = FXGrid1.rowCount.ToString();
      FXGrid1.AllowMultiRowSelection = true;
      FXGrid1.ClientSettings.Selecting.AllowRowSelect = true;

      FXGrid1.pgName = "inbound";
      this.phIBRoute.Controls.Add(FXGrid1);
      FXGrid1.DataSource = dt;

      if (!IsPostBack)
      {
        FXGrid1.MasterTableView.Columns.Add(gcsc);
        FXGrid1.DataBind();
      }
      FXGrid1.setSize();
      Page.PreRender += new EventHandler(FXGrid1.setCombo);
    }
  }


This is my cs file:

public class FXGrid : RadGrid
    {       
        private int pgVal;
        private RadComboBox pgSize;      
        public int rowCount;      
        public double percentWidth = 0;
        public bool blackList = false;
        public String pgName = "";
        public String hideCol = "";
        public String setName;
        public String setNameVal;
        public DataTable dt;
        public String browserType;
        protected RadComboBox rcb = new RadComboBox();
        public FXGrid()
        {
            rcb.DataTextField = "Text";
            rcb.DataValueField = "Value";
            rcb.LoadContentFile(@"~\Common\Xml\GridPageSize.xml");
            pgVal = int.Parse(rcb.Items[rcb.SelectedIndex].Text);
            this.ClientSettings.Resizing.AllowColumnResize = true;
            this.ItemCreated += new GridItemEventHandler(this.testo);
           
            this.ItemDataBound +=new GridItemEventHandler(setCellTooltip);
            this.EnableViewState = true;
            this.ShowHeader = true;
            this.ClientSettings.Resizing.ClipCellContentOnResize = false;
            this.ClientSettings.Resizing.ResizeGridOnColumnResize = false;
            this.ClientSettings.Resizing.AllowResizeToFit = false;
            this.ViewStateMode = ViewStateMode.Enabled;

        }
         public void setCellTooltip(object sender, GridItemEventArgs e)
        {          
            int count = 0;
            if (e.Item is GridDataItem)
            {

                foreach (TableCell cell in e.Item.Cells)
                {

                    if (pgName == "docStore" || pgName == "netSetFaxAgentDR")
                    {
                        if (count >= 5)
                        {
                            String tmpStr = cell.Text.Replace("<nobr>", "");
                            cell.ToolTip = tmpStr.Replace("</nobr>", "");
                        }
                    }
                    else if (pgName == "utilitySearchMsg")
                    {
                        if (count >= 3)
                        {
                            String tmpStr = cell.Text.Replace("<nobr>", "");
                            cell.ToolTip = tmpStr.Replace("</nobr>", "");
                        }
                    }
                    else
                    {
                        if (count >= 4)
                        {
                            String tmpStr = cell.Text.Replace("<nobr>", "");
                            cell.ToolTip = tmpStr.Replace("</nobr>", "");
                        }
                    }
                    count++;
                }
            }
        }
        public void testo(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridPagerItem)
            {
                pgSize = (RadComboBox)e.Item.FindControl("PageSizeComboBox");
                pgSize.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(setSize);
                pgSize.Items.Clear();
                for (int sub = 0; sub < rcb.Items.Count; sub++) {
                    pgSize.Items.Add(new RadComboBoxItem(rcb.Items[sub].Text));
                    pgSize.FindItemByText(rcb.Items[sub].Text).Attributes.Add("ownerTableViewId", this.MasterTableView.ClientID);
                }
            }
        }
        public void setSize()//This is called at the last line in my code behind.
        {
            this.PageSize = pgVal;
            this.MasterTableView.Rebind();
        }

If i remove this line, PageSizeCombo.FindItemByText(e.Item.OwnerTableView.PageSize.ToString()).Selected = true; i can see that the pagesizecombo is showing the correct value but when i click on it, page reloads but the size of rows is not changed. Another problem is when i click on other value, the page reloads and the pagesizecombo selects the default value.

Please help. I've looked for a lot of articles but none seems to fit me.

Regards,
Dexter

0
dexter
Top achievements
Rank 1
answered on 19 Sep 2011, 08:40 AM
Hi,

I'm still waiting for this solution. If i can't get it here, can anyone please direct me to another forum?

Thanks,
Dexter
Tags
Grid
Asked by
Taraman
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Taraman
Top achievements
Rank 1
dexter
Top achievements
Rank 1
Share this question
or