or
<script type="text/javascript"> function RefreshClientGrid() { try { var masterTable = $find("<%= RadGrid1.ClientID %>").get_masterTableView(); masterTable.rebind(); }catch(Error) { alert(Error); } } </script><asp:Label ID="CompanyIdLabel" runat="server" Visible="False"></asp:Label><uc1:FSCompanyReadOnly ID="FSCompanyReadOnly1" runat="server" /><telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="LinqDataSource1" GridLines="None" Skin="Telerik" PageSize="15" CellSpacing="0" OnItemCommand="RadGrid1_ItemCommand" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True"> <MasterTableView DataKeyNames="ClientId" CommandItemDisplay="Top" ClientDataKeyNames="ClientId"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridEditCommandColumn ButtonType="LinkButton" UniqueName="EditCommandColumn"> <ItemStyle CssClass="GridImageButton" /> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="ClientId" DataType="System.Int32" HeaderText="ClientId"<telerik:RadComboBox ID="ddlcmd" runat="server" CheckBoxes="true" Width="300px" OnClientItemChecked="OnClientItemChecked" AllowCustomText="false"> <Items> <telerik:RadComboBoxItem Text="item1" checked="true" /> <telerik:RadComboBoxItem Text="item2" checked="true" /> <telerik:RadComboBoxItem Text="item3" /> <telerik:RadComboBoxItem Text="item4" checked="true" /> </Items> </telerik:RadComboBox>function OnClientItemChecked(sender, eventArgs) { var item = eventArgs.get_item(); sender.set_text("You checked " + item.get_text()); }i have a Telerik RadGrid in a ASP.Net page, my solution is using MVP pattern. i need implementing MVP pattern for CRUD operations for my RadGrid. any body knows about this?
many thanks.
Hi!
I've a radgrid with autogeneratecolumn=true, i'm using advenced databinding to bind the data.
when i change the page or apply filter/sorting the radgrid throws exception during the binding (eg column not found).
the problem occures when change the datasource and reloaded the page.
I tried to set enableviewstatecolumn=false but not works.
Can I help me?

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server"> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" /> <fieldset id="Facility" class="dashboardFieldsetDisplay"> <legend>Facility Data</legend> <asp:Panel ID="FacilityGrids" runat="server" CssClass="dashboardGrid"></asp:Panel> </fieldset> <fieldset id="Company" class="dashboardFieldsetDisplay"> <legend>Company Data</legend> <asp:Panel ID="CompanyGrids" runat="server" CssClass="dashboardGrid"></asp:Panel> </fieldset> <fieldset id="Region" class="dashboardFieldsetDisplay"> <legend>Region Data</legend> <asp:Panel ID="RegionGrids" runat="server" CssClass="dashboardGrid"></asp:Panel> </fieldset> <div class="clearBoth"></div> <div class="displayNone"> <asp:Timer ID="Ticker" runat="server" OnTick="Ticker_Ticked"></asp:Timer> </div></asp:Content>using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using PCSGroup.Freund;using Telerik.Web.UI;public partial class _default : Base{ private List<DateTime> dateRange = new List<DateTime>(); private List<RegionalSales> allRegionalSales = new List<RegionalSales>(); private List<FacilitySales> allFacilitySales = new List<FacilitySales>(); private List<CompanySales> allCompanySales = new List<CompanySales>(); private List<RadGrid> listOfGrids = new List<RadGrid>(); private int dashboardWidth = 235; protected override void OnInit(EventArgs e) { base.OnInit(e); int count = 0; while(count < 5) { dateRange.Add(DateTime.Now.Date.AddDays(count)); count++; } foreach (DateTime day in dateRange) { //loops through the region sales object and creates a list of regionalsales if any exist for that date RegionalSales regionOrders = new RegionalSales(day); allRegionalSales.AddRange(regionOrders.SelectOrders()); //loops through the facility sales object and creates a list of facilitysales if any exist for that date FacilitySales facilityOrders = new FacilitySales(day); allFacilitySales.AddRange(facilityOrders.SelectOrders()); //loops through the company sales object and creates a list of companysales if any exist for that date CompanySales companyOrders = new CompanySales(day); allCompanySales.AddRange(companyOrders.SelectOrders()); } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); Ticker.Interval = 3000; foreach (Region region in new Region().SelectAllRegionsNotDeleted()) { Panel gridWrapper = new Panel(); gridWrapper.Width = 250; gridWrapper.CssClass = "floatLeft"; Literal regionHead = new Literal(); regionHead.Text = String.Format("<h2>{0}</h2>", region.RegionName); gridWrapper.Controls.Add(regionHead); gridWrapper.Controls.Add(GetRegionChart(region.RegionID)); RegionGrids.Controls.Add(gridWrapper); } foreach (Facility facility in new Facility().SelectAllFacilitiesNotDeleted()) { Literal facilityHead = new Literal(); facilityHead.Text = String.Format("<h2>{0}</h2>", facility.FacilityName); FacilityGrids.Controls.Add(facilityHead); FacilityGrids.Controls.Add(GetFacilityChart(facility.FacilityID)); } foreach (Company company in new Company().SelectAllCompaniesNotDeleted().Where(i => i.CompanyID != 2).ToList()) { Panel gridWrapper = new Panel(); gridWrapper.Width = 250; gridWrapper.CssClass = "floatLeft"; Literal companyHead = new Literal(); companyHead.Text = String.Format("<h2>{0}</h2>", company.CompanyName); gridWrapper.Controls.Add(companyHead); gridWrapper.Controls.Add(GetCompanyChart(company.CompanyID)); CompanyGrids.Controls.Add(gridWrapper); } } protected void Company3_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { RadGrid company = listOfGrids.FirstOrDefault(i => i.ID == "Company_3"); company.DataSource = allCompanySales.Where(i => i.CompanyID == 3); } public void Ticker_Ticked(object sender, EventArgs e) { foreach (RadGrid grid in listOfGrids) { grid.Rebind(); } } private RadGrid GetRegionChart(int ID) { string[] keys = { "RegionID", "DeliveryDate" }; RadGrid thisView = new RadGrid(); thisView.CssClass = "roundedCorners"; thisView.Skin = Skin; thisView.Width = dashboardWidth; thisView.AutoGenerateColumns = false; thisView.GridLines = GridLines.None; thisView.MasterTableView.Width = Unit.Percentage(100); thisView.MasterTableView.NoMasterRecordsText = string.Empty; thisView.MasterTableView.ClientDataKeyNames = keys; thisView.ClientSettings.ClientEvents.OnRowClick = "RegionRowClick"; thisView.DataSource = allRegionalSales.Where(i => i.RegionID == ID); GridBoundColumn boundColumn; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "DeliveryDate"; boundColumn.HeaderText = "Date"; boundColumn.DataFormatString = "{0:MM/dd}"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "NewCount"; boundColumn.HeaderText = "New"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "RenewedCount"; boundColumn.HeaderText = "Renewed"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "CancelledCount"; boundColumn.HeaderText = "Cancelled"; listOfGrids.Add(thisView); return thisView; } private RadGrid GetFacilityChart(int ID) { string[] keys = { "FacilityID", "DeliveryDate" }; RadGrid thisView = new RadGrid(); thisView.CssClass = "roundedCorners"; thisView.Skin = Skin; thisView.Width = dashboardWidth; thisView.AutoGenerateColumns = false; thisView.GridLines = GridLines.None; thisView.ID = String.Format("FacilityID_{0}", ID); thisView.MasterTableView.Width = Unit.Percentage(100); thisView.MasterTableView.NoMasterRecordsText = string.Empty; thisView.MasterTableView.ClientDataKeyNames = keys; thisView.ClientSettings.ClientEvents.OnRowClick = "FacilityRowClick"; thisView.DataSource = allFacilitySales.Where(i => i.FacilityID == ID); GridBoundColumn boundColumn; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "DeliveryDate"; boundColumn.HeaderText = "Date"; boundColumn.DataFormatString = "{0:MM/dd}"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "NewCount"; boundColumn.HeaderText = "New"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "RenewedCount"; boundColumn.HeaderText = "Renewed"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "CancelledCount"; boundColumn.HeaderText = "Cancelled"; listOfGrids.Add(thisView); return thisView; } private RadGrid GetCompanyChart(int ID) { string[] keys = { "CompanyID", "DeliveryDate" }; RadGrid thisView = new RadGrid(); thisView.CssClass = "roundedCorners"; thisView.Skin = Skin; thisView.Width = dashboardWidth; thisView.AutoGenerateColumns = false; thisView.GridLines = GridLines.None; thisView.ID = String.Format("Company_{0}", ID); thisView.MasterTableView.Width = Unit.Percentage(100); thisView.MasterTableView.NoMasterRecordsText = string.Empty; thisView.MasterTableView.ClientDataKeyNames = keys; thisView.ClientSettings.ClientEvents.OnRowClick = "CompanyRowClick"; /* !!!! Here's the code that doesn't work !!!! I am creating a reference to a method that does makes my code very brittle. */ if (ID == 3) { thisView.NeedDataSource += new GridNeedDataSourceEventHandler(Company3_NeedDataSource); } RadAjaxManager1.DefaultLoadingPanelID = "LoadingPanel1"; RadAjaxManager1.AjaxSettings.AddAjaxSetting(Ticker, thisView, null); // End Broken Code thisView.DataSource = allCompanySales.Where(i => i.CompanyID == ID); GridBoundColumn boundColumn; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "DeliveryDate"; boundColumn.HeaderText = "Date"; boundColumn.DataFormatString = "{0:MM/dd}"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "NewCount"; boundColumn.HeaderText = "New"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "RenewedCount"; boundColumn.HeaderText = "Renewed"; boundColumn = new GridBoundColumn(); thisView.MasterTableView.Columns.Add(boundColumn); boundColumn.DataField = "CancelledCount"; boundColumn.HeaderText = "Cancelled"; listOfGrids.Add(thisView); return thisView; }}