<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
AutoGenerateEditColumn
=
"True"
OnInsertCommand
=
"RadGrid1_InsertCommand"
OnUpdateCommand
=
"RadGrid1_UpdateCommand"
OnItemDataBound
=
"RadGrid1_ItemDataBound"
OnEditCommand
=
"RadGrid1_EditCommand"
ShowFooter
=
"True"
OnItemCommand
=
"RadGrid1_ItemCommand"
DataMember
=
"DefaultView"
>
<
ClientSettings
AllowKeyboardNavigation
=
"True"
>
<
KeyboardNavigationSettings
AllowSubmitOnEnter
=
"True"
/>
</
ClientSettings
>
<
GroupPanel
Enabled
=
"False"
>
</
GroupPanel
>
<
MasterTableView
EditMode
=
"InPlace"
DataMember
=
"DefaultView"
ShowHeadersWhenNoRecords
=
"true"
CommandItemDisplay
=
"TopAndBottom"
DataKeyNames
=
"ID"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
></
CommandItemSettings
>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
FilterControlAltText
=
"Filter ExpandColumn column"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ItemID"
FilterControlAltText
=
"Filter ItemID column"
HeaderText
=
"ItemID"
ReadOnly
=
"True"
UniqueName
=
"ItemID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
DataField
=
"ItemDescription"
FilterControlAltText
=
"Filter ItemDescription column"
HeaderText
=
"ItemDescription"
SortExpression
=
"ItemDescription"
UniqueName
=
"ItemDescription"
>
<
EditItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblItemDescription"
Text='<%# Bind("ItemDescription") %>'></
asp:Label
>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblItemDescription"
Text='<%# Bind("ItemDescription") %>'></
asp:Label
>
</
ItemTemplate
>
<
InsertItemTemplate
>
<
telerik:RadComboBox
ID
=
"cboItem"
runat
=
"server"
DataSourceID
=
"ODSItems"
DataTextField
=
"Description"
DataValueField
=
"InventoryItemID"
SelectedValue='<%# Bind("ItemID") %>' OnSelectedIndexChanged="cboItem_SelectedIndexChanged" />
</
InsertItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
DataField
=
"Collection"
FilterControlAltText
=
"Filter Collection column"
HeaderText
=
"Collection"
SortExpression
=
"Collection"
UniqueName
=
"Collection"
>
<
EditItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblCollection"
Text='<%# Bind("Collection") %>'></
asp:Label
>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblCollection"
Text='<%# Bind("Collection") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
DataField
=
"Location"
FilterControlAltText
=
"Filter Location column"
HeaderText
=
"Location"
SortExpression
=
"Location"
UniqueName
=
"Location"
>
<
EditItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblLocation"
Text='<%# Bind("Location") %>'></
asp:Label
>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblLocation"
Text='<%# Bind("Location") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
FilterControlAltText
=
"Filter Quantity column"
HeaderText
=
"Quantity"
UniqueName
=
"Quantity"
DataField
=
"Quantity"
DefaultInsertValue
=
"0"
>
<
EditItemTemplate
>
<
telerik:RadNumericTextBox
runat
=
"server"
ID
=
"txtQuantity"
Text='<%# Bind("Quantity") %>' />
<
asp:RequiredFieldValidator
ID
=
"RequiredFieldValidator2"
runat
=
"server"
ErrorMessage
=
"*"
ControlToValidate
=
"txtQuantity"
ForeColor
=
"Red"
/>
</
EditItemTemplate
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblQuantity"
Text='<%# Bind("Quantity") %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Unit"
SortExpression
=
"Unit"
UniqueName
=
"Unit"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblUnit"
Text='<%# Bind("Unit") %>'></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
telerik:RadComboBox
ID
=
"cboUnit"
runat
=
"server"
DataSourceID
=
"ODSUnitList"
DataTextField
=
"UnitDescription"
DataValueField
=
"UnitValue"
SelectedValue='<%# Bind("UnitID") %>' />
<
asp:RequiredFieldValidator
ID
=
"RequiredFieldValidator1"
runat
=
"server"
ErrorMessage
=
"*"
ControlToValidate
=
"cboUnit"
ForeColor
=
"Red"
SetFocusOnError
=
"true"
Display
=
"Dynamic"
/>
</
EditItemTemplate
>
<
InsertItemTemplate
>
<
telerik:RadComboBox
ID
=
"cboUnit"
runat
=
"server"
DataSourceID
=
"ODSUnitList"
DataTextField
=
"UnitDescription"
DataValueField
=
"UnitValue"
/>
</
InsertItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Total"
SortExpression
=
"Total"
UniqueName
=
"Total"
DefaultInsertValue
=
"0"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblTotal"
Text='<%# Bind("Total") %>'></
asp:Label
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblTotal"
Text='<%# Bind("Total") %>'></
asp:Label
>
</
EditItemTemplate
>
<
FooterTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblOverallTotal"
Text='Total = <%= OverallTotal %>'></
asp:Label
>
</
FooterTemplate
>
</
telerik:GridTemplateColumn
>
<%-- <
telerik:GridBoundColumn
FilterControlAltText
=
"Filter CollectionID column"
HeaderText
=
"CollectionID"
UniqueName
=
"CollectionID"
DataField
=
"CollectionID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
FilterControlAltText
=
"Filter LocationID column"
HeaderText
=
"LocationID"
UniqueName
=
"LocationID"
DataField
=
"LocationID"
>
</
telerik:GridBoundColumn
>--%>
<%--<
telerik:GridBoundColumn
FilterControlAltText
=
"Filter UnitID column"
HeaderText
=
"UnitID"
UniqueName
=
"UnitID"
DataField
=
"UnitID"
>
</
telerik:GridBoundColumn
>--%>
</
Columns
>
<
SortExpressions
>
<
telerik:GridSortExpression
FieldName
=
"ItemID"
/>
</
SortExpressions
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
>
</
EditColumn
>
</
EditFormSettings
>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
>
</
FilterMenu
>
<
HeaderContextMenu
CssClass
=
"GridContextMenu GridContextMenu_Default"
>
</
HeaderContextMenu
>
</
telerik:RadGrid
>
Hi there,
Please help me.
I've tried the solution from a previous post(which is this):
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
}
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
<
telerik:GridDropDownColumn
FilterControlWidth
=
"250px"
DataField
=
"country_id"
DataSourceID
=
"sds_countries"
HeaderText
=
"Country"
ListTextField
=
"name"
ListValueField
=
"country_id"
UniqueName
=
"country_id"
>
<
FilterTemplate
>
<
telerik:RadComboBox
ID
=
"ddl_countries"
DataSourceID
=
"sds_countries"
DataTextField
=
"name"
DataValueField
=
"country_id"
AppendDataBoundItems
=
"true"
SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("country_id").CurrentFilterValue %>'
runat="server" OnClientSelectedIndexChanged="CountryChanged">
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"All"
/>
</
Items
>
</
telerik:RadComboBox
>
<
telerik:RadScriptBlock
ID
=
"rsb_countries"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function CountryChanged(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
tableView.filter("country_id", args.get_item().get_value(), "EqualTo");
}
</
script
>
</
telerik:RadScriptBlock
>
</
FilterTemplate
>
<
HeaderStyle
Width
=
"180px"
/>
</
telerik:GridDropDownColumn
>
if (e.Item is GridDataItem)
{
foreach (TableCell cell in e.Item.Cells)
{
cell
if (cell.Text == " ")
cell.Text = "";
}
}