I Opened a ticket for this, but thought I'd post to the forum to see if I could get a faster turnaround...maybe I'm missing something.
Hi,
I have a tabstrip with 2 tabs. I have them set to do a full postback when a tab is clicked.
I have a radgrid, with a dropdown in it. I am updating the grid asynch, when the dropdown is changed.
Additionally, I want to update the text in my tabs when the dropdown is changed. To do is I am using the RadAjaxManager, adding the grid as an ajax setting, and having its updated controls be the grid itself, and the tabstrip.
Unfortunately, as soon as add the tabstrip as an updated control for the the grid action, this causes the tab strip to postback asynch, which is what I do not want to happen.
I think this is a bug, because I have not set the tabstrip to do any asynch postbacks (in the RadAjaxManager). It is only suppose to be sent back to the server when the grid's dropdown is changed. It should continue to do a full postback if a tab is clicked.
I've included a simple project that shows the incorrect behaviour.
As an experiment, I tried in the Page_Init to register the tabstrip as a full postback control using RegisterPostBackControl. This seems to work upon initially loading of the page. The tabs will now do full postbacks at the start. But as soon as the dropdown is changed, and an asynch postback is done (sending the tabstrip to the server), the tabstrip then starts doing asynch postback when the tabs are clicked.
Here is the default.aspx
Here is the default.aspx.cs
Please help,
Rich
Hi,
I have a tabstrip with 2 tabs. I have them set to do a full postback when a tab is clicked.
I have a radgrid, with a dropdown in it. I am updating the grid asynch, when the dropdown is changed.
Additionally, I want to update the text in my tabs when the dropdown is changed. To do is I am using the RadAjaxManager, adding the grid as an ajax setting, and having its updated controls be the grid itself, and the tabstrip.
Unfortunately, as soon as add the tabstrip as an updated control for the the grid action, this causes the tab strip to postback asynch, which is what I do not want to happen.
I think this is a bug, because I have not set the tabstrip to do any asynch postbacks (in the RadAjaxManager). It is only suppose to be sent back to the server when the grid's dropdown is changed. It should continue to do a full postback if a tab is clicked.
I've included a simple project that shows the incorrect behaviour.
As an experiment, I tried in the Page_Init to register the tabstrip as a full postback control using RegisterPostBackControl. This seems to work upon initially loading of the page. The tabs will now do full postbacks at the start. But as soon as the dropdown is changed, and an asynch postback is done (sending the tabstrip to the server), the tabstrip then starts doing asynch postback when the tabs are clicked.
Here is the default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %><!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></title> <telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" /></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <%--Needed for JavaScript IntelliSense in VS2010--%> <%--For VS2008 replace RadScriptManager with ScriptManager--%> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <script type="text/javascript"> //Put your JavaScript code here. </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="radGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="radGrid1" /> <telerik:AjaxUpdatedControl ControlID="rtsMainTab" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <div> <telerik:RadTabStrip ID="rtsMainTab" runat="server" AutoPostBack="true" OnTabClick="rtsMainTab_TabClick"> <tabs> <telerik:RadTab runat="server" > <TabTemplate> <span class="rtsTxt">My Groups</span> (<asp:Label ID="lblMyGroupsCountOpen" runat="server" />/<asp:Label ID="lblMyGroupsCountStat" runat="server" style="color:Red;" />) </TabTemplate> </telerik:RadTab> <telerik:RadTab runat="server" > <TabTemplate> <span class="rtsTxt">My Assignments</span> (<asp:Label ID="lblMyAssignmentsCountOpen" runat="server" />/<asp:Label ID="lblMyAssignmentsCountStat" runat="server" style="color:Red;" />) </TabTemplate> </telerik:RadTab> </tabs> </telerik:RadTabStrip> <telerik:RadGrid runat="server" ID="radGrid1" Skin="Outlook" BorderStyle="None" AllowPaging="false" AllowMultiRowSelection="true" AutoGenerateColumns="false" PageSize="30" > <MasterTableView TableLayout="Fixed" > <Columns> <telerik:GridBoundColumn DataField="AssignmentGroup" HeaderText="Assg Group" HeaderStyle-Width="95px" ItemStyle-Width="95px" /> <telerik:GridTemplateColumn HeaderText="Stat" HeaderStyle-Width="70px" ItemStyle-Width="70px" SortExpression="IsStat" > <ItemTemplate> <asp:DropDownList ID="ddlReferralAssignmentsIsStat" runat="server" CssClass="DropDownList" AutoPostBack="true" OnSelectedIndexChanged="ddlReferralAssignmentsIsStat_SelectedIndexChanged" > <asp:ListItem Text="Yes" Value="Yes" /> <asp:ListItem Text="No" Value="No" /> </asp:DropDownList> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings AllowColumnsReorder="false" ReorderColumnsOnClient="false"> <Selecting AllowRowSelect="True" EnableDragToSelectRows="false" /> <Scrolling AllowScroll="true" UseStaticHeaders="true" ScrollHeight="600px" /> </ClientSettings> <PagerStyle Mode="NumericPages" PageButtonCount="4" /> </telerik:RadGrid> </div> </form></body></html>Here is the default.aspx.cs
using System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Configuration;using System.Web.Security;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using Telerik.Web.UI;public partial class Default : System.Web.UI.Page { protected void Page_Init(object sender, EventArgs e) { //if this is commented in, the tabs will do Full Postbacks initially, until an asynch postback is done from the grid //if its not commented in, then the tabs always postback asynch //RadScriptManager.GetCurrent(this.Page).RegisterPostBackControl(rtsMainTab); } protected void Page_Load(object sender, EventArgs e) { if(!this.IsPostBack) { string[] data = { "test1", "test2" }; radGrid1.DataSource = data; radGrid1.DataBind(); } } protected void rtsMainTab_TabClick(object sender, RadTabStripEventArgs e) { bool isAsynch = RadScriptManager.GetCurrent(this.Page).IsInAsyncPostBack; System.Diagnostics.Trace.WriteLine("tab click is asynch: " + isAsynch); } protected void ddlReferralAssignmentsIsStat_SelectedIndexChanged(Object sender, EventArgs e) { bool isAsynch = RadScriptManager.GetCurrent(this.Page).IsInAsyncPostBack; System.Diagnostics.Trace.WriteLine("grid action is asynch: " + isAsynch); }}Please help,
Rich