Hi,
I am trying to implement the Google style filtering for RadGrid (version 2010.1.519.20) in SharePoint 2007.
First I implemented the code for google style filtering as shown in the example on your site.
The code was working but refreshing using full postback instead of AJAX postback.
AJAX has a well known issue for causing full postback in SharePoint and is fixed with the following code
protected override void CreateChildControls()
{
base.CreateChildControls();
EnsurePanelFix();
}
private void EnsurePanelFix()
{
ScriptManager.RegisterStartupScript
(this,
typeof(UpdatePanel),
"UpdatePanelFixup",
"_spOriginalFormAction = document.forms[0].action; _spSuppressFormOnSubmitWrapper=true;",
true);
}
Doing this fixed the AJAX postback for all controls but causes an issue with RadComboBox.
On the first load, before any AJAX postbacks are caused the combo box loads with the following tag
<INPUT style="DISPLAY: block" id=xxx class=xxx name=xxx autocomplete="off" jQuery1286221047445="5">
after I click an action like sort, the combobox no longer has the autocomplete and jQuery properties and looks like the following


<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadComboBox1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadComboBox2" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadComboBox2"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadComboBox3" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadComboBox3"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgdNoticeHistory" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager><telerik:RadComboBox ID="RadComboBox1" runat="server" Width="200px" onselectedindexchanged="RadComboBox1_SelectedIndexChanged" AutoPostBack="true"> <Items> <telerik:RadComboBoxItem runat="server" Text="ALL" Value="ALL" /> <telerik:RadComboBoxItem runat="server" Text="A" Value="A" /> <telerik:RadComboBoxItem runat="server" Text="B" Value="B" /> <telerik:RadComboBoxItem runat="server" Text="C" Value="C" /> </Items> </telerik:RadComboBox> <telerik:RadComboBox ID="RadComboBox2" runat="server" Width="200px" onselectedindexchanged="RadComboBox2_SelectedIndexChanged" AutoPostBack="true"></telerik:RadComboBox> <telerik:RadComboBox ID="RadComboBox3" runat="server" Width="200px" onselectedindexchanged="RadComboBox3_SelectedIndexChanged" AutoPostBack="true"></telerik:RadComboBox>protected void RadComboBox1_SelectedIndexChanged(object o, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e) { RadComboBox2.Items.Clear(); RadComboBox3.Items.Clear(); LoadRadComboBox2Items(); }protected void RadComboBox2_SelectedIndexChanged(object o, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e) { RadComboBox3.Items.Clear(); LoadRadComboBox3Items(); } protected void RadComboBox3_SelectedIndexChanged(object o, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e) { RadGrid1.DataSource = GetAllData(Convert.ToInt32(RadComboBox1.SelectedValue.ToString()), Convert.ToInt32(RadComboBox3.SelectedValue.ToString())); RadGrid1.Rebind(); }
| <!--test.aspx--> |
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <%@ Register assembly="RadTabStrip.Net2" namespace="Telerik.WebControls" tagprefix="radTS" %> |
| <%@ Register TagPrefix="uc" TagName="UserControl1" Src="UserControl1.ascx"%> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head runat="server"> |
| <title>Untitled Page</title> |
| <script type="text/javascript"> |
| </script> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <div> |
| <asp:ScriptManager ID="ScriptManager" runat="server" /> |
| <telerik:RadAjaxLoadingPanel runat="server" ID="LoadingPanel1"> |
| <asp:Image runat="server" ID="LoadingImage1" ImageUrl="~/Ajax/Img/loading7.gif" AlternateText="Loading..." /> |
| </telerik:RadAjaxLoadingPanel> |
| <telerik:RadAjaxManager runat="server" ID="RadAjaxManager1"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadTabStrip1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadTabStrip1" /> |
| <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" LoadingPanelID="LoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="RadMultiPage1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" LoadingPanelID="LoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <script type="text/javascript"> |
| function onTabSelecting(sender, args) |
| { |
| if (args.get_tab().get_pageViewID()) |
| {args.get_tab().set_postBack(false);} |
| } |
| </script> |
| <telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" OnPageViewCreated="RadMultiPage1_PageViewCreated"> |
| </telerik:RadMultiPage> |
| <telerik:RadTabStrip OnClientTabSelecting="onTabSelecting" ID="RadTabStrip1" SelectedIndex="0" runat="server" MultiPageID="RadMultiPage1" Skin="Office2007" OnTabClick="RadTabStrip1_TabClick" Orientation="HorizontalBottom"> |
| </telerik:RadTabStrip> |
| <span id="spnDebug" runat="server"> |
| </span> |
| </div> |
| </form> |
| </body> |
| </html> |
| <!--test.aspx.cs--> |
| using System; |
| using System.Collections; |
| using System.Configuration; |
| using System.Data; |
| using System.Linq; |
| using System.Web; |
| using System.Web.Security; |
| using System.Web.UI; |
| using System.Web.UI.HtmlControls; |
| using System.Web.UI.WebControls; |
| using System.Web.UI.WebControls.WebParts; |
| using System.Xml.Linq; |
| using Telerik.Web.UI; |
| public partial class Test : System.Web.UI.Page |
| { |
| protected void Page_Load(object sender, System.EventArgs e) |
| { |
| if (!Page.IsPostBack) |
| { |
| AddTab("Category 1"); |
| AddTab("Category 2"); |
| AddTab("Category 3"); |
| if(RadTabStrip1.Tabs.Count > 0){AddPageView(RadTabStrip1.Tabs[0]);} |
| } |
| } |
| private void AddTab(string tabName) |
| { |
| RadTab tab = new RadTab(); |
| tab.Text = tabName; |
| RadTabStrip1.Tabs.Add(tab); |
| } |
| protected void RadMultiPage1_PageViewCreated(object sender, RadMultiPageEventArgs e) |
| { |
| string userControlName = "UserControl1.ascx"; |
| test_UserControl1 userControl = (test_UserControl1) Page.LoadControl(userControlName); |
| userControl.ID = e.PageView.ID + "_userControl"; |
| userControl.Category = e.PageView.ID; |
| e.PageView.Controls.Add(userControl); |
| } |
| private void AddPageView(RadTab tab) |
| { |
| RadPageView pageView = new RadPageView(); |
| pageView.ID = tab.Text; |
| RadMultiPage1.PageViews.Add(pageView); |
| tab.PageViewID = pageView.ID; |
| } |
| protected void RadTabStrip1_TabClick(object sender, RadTabStripEventArgs e) |
| { |
| AddPageView(e.Tab); |
| e.Tab.PageView.Selected = true; |
| } |
| } |
| <!--User Control 1--> |
| <%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserControl1.ascx.cs" Inherits="test_UserControl1" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <telerik:RadGrid ID="RadGrid1" runat="server" GridLines="Horizontal" AutoGenerateEditColumn="true" Skin="WebBlue" OnUpdateCommand="RadGrid1_UpdateCommand" OnItemDataBound="RadGrid1_ItemDataBound" OnNeedDataSource="RadGrid1_NeedDataSource"> |
| <MasterTableView AutoGenerateColumns="True" EditMode="InPlace" TableLayout="Auto"> |
| <RowIndicatorColumn Visible="False"> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn Visible="False" Resizable="False"> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </ExpandCollapseColumn> |
| <Columns> |
| </Columns> |
| <EditFormSettings> |
| <PopUpSettings ScrollBars="None"></PopUpSettings> |
| </EditFormSettings> |
| </MasterTableView> |
| </telerik:RadGrid> |
| <span id="spnDebug" runat="server"/> |
| <!--UserControl1.ascx.cs--> |
| using System; |
| using System.Collections; |
| using System.Configuration; |
| using System.Data; |
| using System.Linq; |
| using System.Web; |
| using System.Web.Security; |
| using System.Web.UI; |
| using System.Web.UI.HtmlControls; |
| using System.Web.UI.WebControls; |
| using System.Web.UI.WebControls.WebParts; |
| using System.Xml.Linq; |
| using Telerik.Web.UI; |
| public partial class test_UserControl1 : System.Web.UI.UserControl |
| { |
| public string Category{get;set;} |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| spnDebug.InnerHtml = "UC loaded at " + DateTime.Now.ToString() + "<br/>Category is " + Category + "<br/>"; |
| } |
| protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| ArrayList list = new ArrayList(); |
| switch (Category) |
| { |
| case "Category 1": |
| list.Add("Cat1 Thing 1"); |
| list.Add("Cat1 Thing 2"); |
| list.Add("Cat1 Thing 3"); |
| break; |
| case "Category 2": |
| list.Add("Cat2 Thing 1"); |
| list.Add("Cat2 Thing 2"); |
| list.Add("Cat2 Thing 3"); |
| break; |
| case "Category 3": |
| list.Add("Cat3 Thing 1"); |
| list.Add("Cat3 Thing 2"); |
| list.Add("Cat3 Thing 3"); |
| break; |
| default: |
| list.Add("Cat Unknown Thing 1"); |
| break; |
| } |
| RadGrid1.DataSource = list; |
| } |
| protected void RadGrid1_UpdateCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) |
| { |
| spnDebug.InnerHtml += "RadGrid1_UpdateCommand Called<br/>"; |
| } |
| protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) |
| { |
| spnDebug.InnerHtml += "RadGrid1_ItemDataBound Called<br/>"; |
| } |
| } |
I have a webpage that has a RadGrid on it (among other controls) and display a modal window when the user submits data. If the rows on the grid are less than 100 rows it all works fine. But if the row count is greater than 100 (or somewhere around 100, haven't got it to an exact figure) the parent webpage's control etc. all disappear and only once the modal window is closed does the parent window redisplay correctly.
Any ideas?
I am using the following javascript to display the window:
function OpenValidationWindow() { oWnd = window.radopen('../MarketDataPriceInputValidation.aspx', null); oWnd.show(); oWnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Close); oWnd.SetSize(625, 600); //Adjust position of validation window oWnd.MoveTo(162.5, 110); //Set the callBack function to be called once the user has clicked on a button on the validation window oWnd.add_close(OnValidationWindowClose); }