My page contains 2 tabs and under each tab, there is a grid inside.
After performing something on the page, it fires a ajax request to the server side to cause a rebind to the grid.
The grid inside the focused tab is rendered perfectly. However the second one is not, the height of the grid is just about 1 row.
javascript:
| function ReloadGrid() |
| { |
| $find("<%=RadAjaxManager1.ClientID%>").ajaxRequest("RefreshGrid"); |
| } |
Declaration:
| <telerik:RadTabStrip ID="radGrid" SelectedIndex="0" runat="server" MultiPageID="GridMultiPage" Skin="Outlook"> |
| <Tabs> |
| <telerik:RadTab runat="server" Text="Expense Detail" PageViewID="ExpenseDetail" Selected="True"> |
| </telerik:RadTab> |
| <telerik:RadTab runat="server" Text="View all detail lines" PageViewID="AllDetail"> |
| </telerik:RadTab> |
| </Tabs> |
| </telerik:RadTabStrip> |
| <telerik:RadMultiPage ID="GridMultiPage" runat="server" SelectedIndex="0" > |
| <telerik:RadPageView ID="ExpenseDetail" runat="server" BorderStyle="none"> |
| <telerik:RadGrid ID="expenseDetailGrid" runat="server" AllowPaging="True" AllowSorting="True" |
| GridLines="None" AutoGenerateColumns="False" ShowFooter="True" Skin="Outlook" Width="600px" Height="290px" OnNeedDataSource="expenseDetailGrid_NeedDataSource"> |
| <MasterTableView DataKeyNames="Expense_Detail_Id" ClientDataKeyNames="Expense_Detail_Id"> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <Columns> |
| ..... Removed ....... |
| </Columns> |
| </MasterTableView> |
| <ClientSettings> |
| <Scrolling AllowScroll="True" UseStaticHeaders="True" /> |
| <Selecting AllowRowSelect="True" /> |
| <ClientEvents OnRowSelected="expenseDetailGridRowSelected" /> |
| </ClientSettings> |
| <FilterMenu EnableTheming="True" Skin="Outlook"> |
| <CollapseAnimation Duration="200" Type="OutQuint" /> |
| </FilterMenu> |
| <PagerStyle Mode="NextPrevAndNumeric" /> |
| </telerik:RadGrid> |
| </telerik:RadPageView> |
| <telerik:RadPageView ID="AllDetail" runat="server" BorderStyle="none" > |
| <telerik:RadGrid ID="allDetailGrid" runat="server" AllowPaging="True" AllowSorting="True" |
| GridLines="None" AutoGenerateColumns="False" ShowFooter="True" Skin="Outlook" Width="980px" Height="290px" OnNeedDataSource="AllDetailGrid_NeedDataSource" OnItemDataBound="allDetailGrid_ItemDataBound"> |
| <MasterTableView DataKeyNames="AG_Expense_Detail_Line_Id" ClientDataKeyNames="AG_Expense_Detail_Line_Id"> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px" /> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px" /> |
| </ExpandCollapseColumn> |
| <Columns> |
| .... Removed |
| </Columns> |
| </MasterTableView> |
| <ClientSettings ReorderColumnsOnClient="True"> |
| <Scrolling AllowScroll="True" UseStaticHeaders="True"/> |
| <Selecting AllowRowSelect="True" /> |
| <Resizing AllowColumnResize="True" /> |
| <ClientEvents OnRowSelected="allDetailGridRowSelected" /> |
| </ClientSettings> |
| <FilterMenu EnableTheming="True" Skin="Outlook"> |
| <CollapseAnimation Duration="200" Type="OutQuint" /> |
| </FilterMenu> |
| <PagerStyle Mode="NextPrevAndNumeric"/> |
| <ItemStyle Wrap="True"/> |
| </telerik:RadGrid> |
| </telerik:RadPageView> |
| </telerik:RadMultiPage> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadAjaxManager1" > |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="expenseDetailGrid" /> |
| <telerik:AjaxUpdatedControl ControlID="allDetailGrid" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="expenseDetailGrid"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="expenseDetailGrid" LoadingPanelID="RadAjaxLoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="allDetailGrid"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="allDetailGrid" LoadingPanelID="RadAjaxLoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" Transparency="10" BackColor="#e0e0e0"> |
| <table width="100%" height="100%"> |
| <tr> |
| <td valign="middle" align="center"><img src="../../images/loading6.gif" /></td> |
| </tr> |
| </table> |
| </telerik:RadAjaxLoadingPanel> |
Code Behind :
| protected void AllDetailGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| Expense_Detail_Line_DataAdapter da_expensedetailline = new Expense_Detail_Line_DataAdapter(); |
| DataSet ds_expensedetailline = da_expensedetailline.GetExpenseDetailLineByExpense(_ExpenseId); |
| allDetailGrid.DataSource = ds_expensedetailline; |
| } |
| protected void expenseDetailGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| Expense_Detail_DataAdapter da_expensedetail = new Expense_Detail_DataAdapter(); |
| DataSet ds_expensedetail = da_expensedetail.GetExpenseDetailByExpense(_ExpenseId); |
| expenseDetailGrid.DataSource = ds_expensedetail; |
| } |
| protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) |
| { |
| if (e.Argument == "RefreshGrid") |
| { |
| expenseDetailGrid.Rebind(); |
| allDetailGrid.Rebind(); |
| } |
| } |