or
<telerik:RadGrid ID="Grid" runat="server" AutoGenerateColumns="false" Skin="Simple" AllowSorting="true" AllowFilteringByColumn="true" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" OnNeedDataSource="Grid_NeedDataSource" OnItemDataBound="Grid_ItemDataBound" ViewStateMode="Disabled" AllowPaging="true" PageSize="500" AllowCustomPaging="true">
It has batch editing enabled, too.
It has about 30 columns, 20 of them are GridTemplateColumn with RadComboBox. When we have more than 100 rows, page load is very slow, and customer doesn't want us to have pagination.
Is there any way so we can speed up page load? It's a mandatory requirement for us.
Thanks in advance,
Alfonso

<div class="WebpageManagementBox"> <br /><br /> <asp:Label ID="lblRolePrompt" Text="Select Role to associate web pages:" CssClass="box_Labels" runat="server"></asp:Label> <br /> <telerik:RadDropDownList ID="ddlRoles" runat="server" CssClass="wepageManagementDropDown" Width="200px" DataTextField="role" DataValueField="ID" AutoPostBack="true" OnItemSelected="ddlRoles_ItemSelected"></telerik:RadDropDownList> <br /> <br /> <telerik:RadGrid ID="RadGridwebpagemanagement" CssClass="webpageManagementGrid" MasterTableView-DataKeyNames="ID" runat="server" AllowFilteringByColumn="True" AllowSorting="True" GroupPanelPosition="Top" OnNeedDataSource="RadGridwebpagemanagement_NeedDataSource" OnUpdateCommand="RadGridwebpagemanagement_UpdateCommand" OnItemDataBound="RadGridwebpagemanagement_ItemDataBound" OnDeleteCommand="RadGridwebpagemanagement_DeleteCommand" OnInsertCommand="RadGridwebpagemanagement_InsertCommand"> <ClientSettings> <Scrolling AllowScroll="True" UseStaticHeaders="True" /> <Selecting AllowRowSelect="true" /> </ClientSettings> <GroupingSettings CaseSensitive="false" /> <MasterTableView AutoGenerateColumns="false" CommandItemDisplay="Top" CommandItemSettings-AddNewRecordText="Add New Webpage" InsertItemPageIndexAction="ShowItemOnCurrentPage"> <columns> <telerik:GridBoundColumn DataField="webpage_name" HeaderText="Web Page" UniqueName="webpage_name" ItemStyle-Font-Names="Arial" ItemStyle-Font-Bold="true" FilterControlWidth="200px"> <HeaderStyle Width="230px" Font-Names="Arial" /> <ItemStyle Width="230px" /> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="add_privledge" HeaderText="Allow Adds" UniqueName="add_privledge" FilterControlWidth="120px"> <HeaderStyle Width="120px" Font-Names="Arial" /> <ItemStyle Width="120px" /> </telerik:GridCheckBoxColumn> <telerik:GridCheckBoxColumn DataField="edit_privledge" HeaderText="Allow Edits" UniqueName="edit_privledge" FilterControlWidth="120px"> <HeaderStyle Width="120px" Font-Names="Arial" /> <ItemStyle Width="120px" /> </telerik:GridCheckBoxColumn> <telerik:GridCheckBoxColumn DataField="delete_privledge" HeaderText="Allow Deletes" UniqueName="delete_privledge" FilterControlWidth="120px"> <HeaderStyle Width="120px" Font-Names="Arial" /> <ItemStyle Width="120px" /> </telerik:GridCheckBoxColumn> <telerik:GridEditCommandColumn ButtonType="LinkButton" EditText="Edit" CancelText="Cancel" ItemStyle-Width="50px" HeaderStyle-Width="50px" FilterControlWidth="50px" /> <telerik:GridButtonColumn ConfirmText="Delete this product?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="LinkButton" Text="Delete" CommandName="Delete" ItemStyle-Width="50px" HeaderStyle-Width="50px" FilterControlWidth="50px" /> </columns> <EditFormSettings EditFormType="Template"> <FormTemplate> <div id="divGridEdit" class="divGrid"> <b>Add New Role to Webpage Association</b> <br /><br /> <table> <tr> <td><asp:Label Text="Web Page:" runat="server"></asp:Label></td> <td> <asp:DropDownList ID="ddlWebPages" DataSourceID="sqlDataSourceWebpages" AppendDataBoundItems="True" DataTextField="webpage_name" DataValueField="ID" SelectedValue='<%# DataBinder.Eval(Container.DataItem,"security_webpage_id") == DBNull.Value ? "" : DataBinder.Eval(Container.DataItem,"security_webpage_id") %>' runat="server"> <asp:ListItem Value=""></asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td><br /></td> <td></td> </tr> <tr> <td><asp:Label Text="Allow Add:" runat="server"></asp:Label></td> <td><asp:CheckBox ID="chkboxAllowAdd" Checked='<%# DataBinder.Eval(Container.DataItem,"add_privledge") == DBNull.Value ? false : DataBinder.Eval(Container.DataItem,"add_privledge") %>' runat="server" /></td> </tr> <tr> <td><asp:Label Text="Allow Edit:" runat="server"></asp:Label></td> <td><asp:CheckBox ID="chkboxAllowEdit" Checked='<%# DataBinder.Eval(Container.DataItem,"edit_privledge") == DBNull.Value ? false : DataBinder.Eval(Container.DataItem,"edit_privledge") %>' runat="server" /></td> </tr> <tr> <td><asp:Label Text="Allow Delete:" runat="server"></asp:Label></td> <td><asp:CheckBox ID="chkboxDelete" Checked='<%# DataBinder.Eval(Container.DataItem,"delete_privledge") == DBNull.Value ? false : DataBinder.Eval(Container.DataItem,"delete_privledge") %>' runat="server" /></td> </tr> <tr> <td><asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>' runat="server" /></td> <td><asp:Button ID="btnCancel" Text="Cancel" runat="server" CommandName="Cancel" CausesValidation="false" /></td> </tr> </table> </div> </FormTemplate> </EditFormSettings> </MasterTableView> <ClientSettings> <ClientEvents OnRowDblClick="rowDblClick" /> </ClientSettings> </telerik:RadGrid> </div> <asp:SqlDataSource ID="sqlDataSourceWebpages" runat="server" SelectCommand="SELECT * FROM dbo.security_webpage" ConnectionString="<%$ ConnectionStrings:GATEConnectionString %>"></asp:SqlDataSource> <telerik:RadWindowManager ID="RadWindowManager1" runat="server" />using GATE_Entity;using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;using System.Collections;namespace FRC{ public partial class WebPageManagemet : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GATEEntities dbContext = new GATEEntities(); // Load Role Drop-down List var rolequery = from r in dbContext.Security_Role select r; IEnumerable<Security_Role> roles = rolequery.ToList(); ddlRoles.DataSource = roles; ddlRoles.DataBind(); } } protected void RadGridwebpagemanagement_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { int? selectedroleid = Convert.ToInt32(ddlRoles.SelectedValue); // Use LINQ query to populate radGrid GATEEntities dbContext = new GATEEntities(); var query = from srw in dbContext.Security_Role_To_Webpage join sw in dbContext.Security_Webpage on srw.security_webpage_id equals sw.ID where srw.security_role_id == selectedroleid select new { srw.ID, srw.security_webpage_id, sw.webpage_name, srw.add_privledge, srw.edit_privledge, srw.delete_privledge, srw.view_privledge }; //IEnumerable<Security_Role_To_Webpage> securitypages = query.ToList(); RadGridwebpagemanagement.DataSource = query.ToList(); } protected void ddlRoles_ItemSelected(object sender, Telerik.Web.UI.DropDownListEventArgs e) { RadGridwebpagemanagement.Rebind(); } protected void RadGridwebpagemanagement_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item.FindControl("ddlWebPages") != null ) { GridEditableItem editedItem = e.Item as GridEditableItem; DropDownList _ddl = (DropDownList)e.Item.FindControl("ddlWebPages"); if (_ddl != null) { _ddl.DataSourceID = ""; _ddl.Items.Clear(); ListItem newitem = new ListItem("",""); _ddl.Items.Add(newitem); _ddl.DataSource = this.sqlDataSourceWebpages; _ddl.DataTextField = "webpage_name"; _ddl.DataValueField = "ID"; _ddl.DataBind(); } } } protected void RadGridwebpagemanagement_DeleteCommand(object sender, GridCommandEventArgs e) { GATE_Entity.GATEEntities dbContext = new GATEEntities(); var editableItem = ((GridEditableItem)e.Item); var lookupID = (int)editableItem.GetDataKeyValue("ID"); // Retrieve Entity var webpagerecord = dbContext.Security_Role_To_Webpage.Where(n => n.ID == lookupID).FirstOrDefault(); if (webpagerecord != null) { // set for deletion dbContext.Security_Role_To_Webpage.Remove(webpagerecord); try { // Save changes to db dbContext.SaveChanges(); } catch (System.Exception) { } } } private void DisplayMessage(string text) { RadGridwebpagemanagement.Controls.Add(new LiteralControl(string.Format("<span style='color:red'>{0}</span>", text))); } protected void RadGridwebpagemanagement_UpdateCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) { GATEEntities dbContext = new GATEEntities(); var editableItem = ((GridEditableItem)e.Item); var lookupID = (int)editableItem.GetDataKeyValue("ID"); DropDownList ddlwebpage = (DropDownList)editableItem.FindControl("ddlWebPages"); var selectedval = Convert.ToInt32(ddlwebpage.SelectedValue); // Check to make sure user didn't select webpage for this role that is already within the role var roleid = Convert.ToInt32(ddlRoles.SelectedValue); var webpagerecexist = (from srw in dbContext.Security_Role_To_Webpage where srw.security_role_id == roleid && srw.security_webpage_id == selectedval && srw.ID != lookupID select srw).ToList(); // If Count > 0 then user chose drop down webpage that is already associated with role if (webpagerecexist.Count == 0) { // create sql criteria with which the changes will be applied to var webpagerecord = dbContext.Security_Role_To_Webpage.Where(n => n.ID == lookupID).FirstOrDefault(); if (webpagerecord != null) { // update entity's state editableItem.UpdateValues(webpagerecord); try { // Save changes to db dbContext.SaveChanges(); } catch (System.Exception) { } } } else { DisplayMessage("The webpage you selected already exists for this role!"); // keep in update mode e.Canceled = true; } } protected void RadGridwebpagemanagement_InsertCommand(object sender, GridCommandEventArgs e) { GATEEntities dbContext = new GATEEntities(); var editableItem = ((GridEditableItem)e.Item); Hashtable values = new Hashtable(); editableItem.ExtractValues(values); var newrec = dbContext.Security_Role_To_Webpage.Create(); newrec.security_webpage_id = (int?)values["security_webpage_id"]; newrec.security_role_id = (int?)values["security_role_id"]; newrec.add_privledge = (bool?)values["add_privledge"]; newrec.edit_privledge = (bool?)values["edit_privledge"]; newrec.delete_privledge = (bool?)values["delete_privledge"]; dbContext.SaveChanges(); } }}
<telerik:RadDropDownList ID="CUST_NBRDropDown" runat="server" DataSourceID="Customer_DDL" DataTextField="account_name" DataValueField="account_number" DropDownHeight="400px" SelectedValue='<%# Bind("CUST_NBR")%>' OnClientItemSelected="OnClientItemSelected"></telerik:RadDropDownList>function OnClientItemSelected(sender, eventArgs) { var item = eventArgs.get_item(); //alert("You selected " + item.get_text() + " with value " + item.get_value()); retVal = window.open("BSDM_PLANT_BACKNUMBERS_popup.aspx?acct_num=" + item.get_value(), "Popup", "width=300,height=100"); retVal.focus();<asp:TextBox ID="CUST_NBR_txt" runat="server" Text='<%# Bind("CUST_NBR") %>' Visible="true"></asp:TextBox>