CREATE TABLE [dbo].[Widgets]( [WidgetsID] [int] IDENTITY(1,1) NOT NULL, [WidgetsName] [nvarchar](max) NOT NULL, [WidgetsUrl] [nvarchar](max) NULL, [Description] [nvarchar](max) NULL, [StatusID] [int] NOT NULL, [CreatedByID] [int] NOT NULL, [CreatedByDate] [datetime] NOT NULL, [ModifiedByID] [int] NULL, [ModifiedByDate] [datetime] NULL, CONSTRAINT [PK_Widgets] PRIMARY KEY CLUSTERED ( [WidgetsID] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ----------------------------------------------------------- CREATE TABLE [dbo].[WidgetsPersonalized]( [WidgetsPersonalizedID] [int] IDENTITY(1,1) NOT NULL, [EmpNo] [int] NOT NULL, [WidgetsID] [nvarchar](50) NULL, [DockString] [nvarchar](max) NULL, [StatusID] [int] NOT NULL, [CreatedByID] [int] NOT NULL, [CreatedByDate] [datetime] NOT NULL, [ModifiedByID] [int] NULL, [ModifiedByDate] [datetime] NULL, CONSTRAINT [PK_WidgetsPersonalized] PRIMARY KEY CLUSTERED ( [WidgetsPersonalizedID] ASC, [EmpNo] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO -------------------------------------------------- -- exec usp_DeleteWidgets 1,'Branch Status','' CREATE Procedure [dbo].[usp_DeleteWidgets] ( @EmpNo as int, @DockTitle as nvarchar(MAX), @ReturnVal int output) asBegin set @ReturnVal = 0 declare @temptable TABLE (items varchar(8000)) declare @Delimiter char(1) set @Delimiter = ',' Declare @WidgetsID as varchar(20) Declare @WidgetsList as varchar(MAX) Declare @NewWidgetsList as varchar(MAX) Declare @MaxRecordExist as int -- get WidgetsID from Widgets using WidgetsName set @WidgetsID = (select cast(WidgetsID as varchar(20))as WidgetsID from Widgets where upper(ltrim(rtrim(WidgetsName))) = upper(ltrim(rtrim(@DockTitle)))) -- Get List of Existing Widgets for perticuler employee set @WidgetsList = (select WidgetsID from WidgetsPersonalized where EmpNo = @EmpNo) -- Split Existing Widgets list and insert it into TempTable. insert into @temptable (Items) select Items from dbo.Split(@WidgetsList,@Delimiter) -- Check if Only one record exist for the user than delete the record. -- else Update the exist widgets list. set @MaxRecordExist = (Select Count(*) from @temptable) print @MaxRecordExist if(@MaxRecordExist = 1) Begin delete from WidgetsPersonalized where EmpNo = @EmpNo set @ReturnVal = 1 End else Begin select @NewWidgetsList = COALESCE(@NewWidgetsList + @Delimiter,'') + Items from @temptable where not (charIndex(',' + rtrim(cast(Items as nvarchar(max))) + ',',',' + isnull(@WidgetsID,-1) +',') >0 ) print @NewWidgetsList update WidgetsPersonalized set WidgetsID = isnull(@NewWidgetsList,WidgetsID)where EmpNo = @EmpNo set @ReturnVal = 1 End End GO ------------------------------ CREATE Procedure [dbo].[usp_InsertWidgetsPersonalized] ( @WidgetsPersonalizedID int, @EmpNo int, @WidgetsID nvarchar(50), @DockString nvarchar(MAX), @StatusID int, @CreatedByID int, @ReturnVal int output ) as Begin set @ReturnVal = 0 select @WidgetsPersonalizedID = WidgetsPersonalizedID from WidgetsPersonalized where EmpNo = @EmpNo --if(@WidgetsID is not null) --Begin if(@WidgetsPersonalizedID > 0) Begin Declare @WidgetsIDExist int select @WidgetsIDExist = Count(*) from dbo.Split((select WidgetsID from WidgetsPersonalized where EmpNo = @EmpNo),',') where Items = @WidgetsID Update WidgetsPersonalized set WidgetsID =case when @WidgetsID is not null and @WidgetsIDExist = 0 then (ltrim(rtrim(WidgetsID))+','+@WidgetsID) else ltrim(rtrim(WidgetsID)) end, DockString = isnull(@DockString,DockString), StatusID = isnull(@StatusID,StatusID), ModifiedByID = isnull(@CreatedByID,ModifiedByID), ModifiedByDate = getdate() where EmpNo = @EmpNo set @ReturnVal = 1 End else Begin if(@WidgetsID is not null) Begin Insert into WidgetsPersonalized (EmpNo,WidgetsID,DockString,StatusID, CreatedByID,CreatedByDate,ModifiedByID,ModifiedByDate) values(@EmpNo, @WidgetsID, @DockString, @StatusID, @CreatedByID,GetDate(),@CreatedByID,GetDate()) set @ReturnVal = 1 End End --End EndGO ---------------------------------- -- exec usp_SelectWidgets 1,null CREATE procedure [dbo].[usp_SelectWidgets] ( @EmpNo int, @StatusID int) asBegin Declare @WidgetsID as varchar(20) select @WidgetsID = WidgetsID from WidgetsPersonalized where EmpNo = @EmpNo select WidgetsID,WidgetsName,WidgetsUrl,[Description],StatusID,CreatedByID, CreatedByDate,ModifiedByID,ModifiedByDate from Widgets where StatusID = isnull(@StatusID,StatusID) and not (charIndex(',' + rtrim(cast(WidgetsID as nvarchar(max))) + ',',',' + isnull(@WidgetsID,-1) +',') >0 ) End GO ------------------------------------ -- exec usp_SelectWidgetsPersonalized null CREATE procedure [dbo].[usp_SelectWidgetsPersonalized] ( @EmpNo int, @StatusID int) asBegin select WidgetsPersonalizedID,EmpNo,WidgetsID,DockString,StatusID,CreatedByID, CreatedByDate,ModifiedByID,ModifiedByDate from WidgetsPersonalized where StatusID = isnull(@StatusID,StatusID) and EmpNo = isnull(@EmpNo,EmpNo) EndGO ---------------------------------------- <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server"> <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="lnkBtnAddWidgets"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="dlDashBoard" LoadingPanelID="radloadingpanal" /> <telerik:AjaxUpdatedControl ControlID="ddlWidgets" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="lnkBtnClose"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="dlDashBoard" LoadingPanelID="radloadingpanal" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="dlDashBoard"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="dlDashBoard" LoadingPanelID="radloadingpanal" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManagerProxy> <%-- <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"> <script language="javascript" type="text/javascript"> function ImgChange(ControlID, TitleContent) { $("#" + TitleContent).slideToggle(500); if (ControlID.className == "collapsibleUP") { ControlID.setAttribute("class", "collapsibleDown"); } else { ControlID.setAttribute("class", "collapsibleUP"); } } </script> </telerik:RadScriptBlock>--%> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server"> <table cellpadding="0" cellspacing="2" border="0" style="width: 100%"> <tr> <td align="right"> <asp:LinkButton ID="lnkBtnPersonalizePage" runat="server" Text="Personalize this page My page" class="collapsibleDown" OnClick="lnkBtnPersonalizePage_Click"></asp:LinkButton> <asp:Panel ID="pnlAddWidgets" runat="server" Visible="false"> <table cellpadding="0" cellspacing="2" border="0"> <tr valign="middle" align="right"> <td> <telerik:RadComboBox ID="ddlWidgets" runat="server" DataTextField="WidgetsName" DataValueField="WidgetsID"> </telerik:RadComboBox> </td> <td> <telerik:RadComboBox ID="ddlPosition" runat="server"> <Items> <telerik:RadComboBoxItem Selected="true" Text="Select Position" Value="-1" /> <telerik:RadComboBoxItem Text="Top" Value="TOP" /> <telerik:RadComboBoxItem Text="Right" Value="RIGHT" /> <telerik:RadComboBoxItem Text="Left" Value="LEFT" /> </Items> </telerik:RadComboBox> </td> <td align="right" rowspan="2"> <asp:LinkButton ID="lnkBtnAddWidgets" runat="server" Text="Add" CssClass="IconAdd" OnClick="lnkBtnAddWidgets_Click"></asp:LinkButton> </td> <td align="right" rowspan="2"> <asp:LinkButton ID="lnkBtnClose" runat="server" Text="Close" CssClass="IconBack" OnClick="lnkBtnClose_Click"></asp:LinkButton> </td> </tr> </table> </asp:Panel> </td> </tr> </table> <%-- <tr> <td align="center" valign="top">--%> <telerik:RadDockLayout ID="dlDashBoard" runat="server" OnLoadDockLayout="dlDashBoard_LoadDockLayout" OnSaveDockLayout="dlDashBoard_SaveDockLayout"> <table cellpadding="4" cellspacing="4" style="width: 100%" border="0"> <tr valign="top"> <td colspan="2"> <telerik:RadDockZone ID="dzTop" runat="server" Width="100%" Height="100%" BorderStyle="None"> </telerik:RadDockZone> </td> </tr> <tr valign="top"> <td style="width: 50%"> <telerik:RadDockZone ID="dzLeft" runat="server" Width="100%" Height="100%" BorderStyle="None"> </telerik:RadDockZone> </td> <td style="width: 50%"> <telerik:RadDockZone ID="dzRight" runat="server" Width="100%" Height="100%" BorderStyle="None"> </telerik:RadDockZone> </td> </tr> </table> <div style="display: none"> <asp:UpdatePanel runat="server" ID="UpdatePanel1"> <Triggers> <asp:AsyncPostBackTrigger ControlID="lnkBtnAddWidgets" EventName="Click" /> </Triggers> </asp:UpdatePanel> </div> </telerik:RadDockLayout> <%-- </td> </tr>--%> </asp:Content> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Test.Domain; using Test.DataModel; using Telerik.Web.UI; using System.Text; using System.Drawing; public partial class Default : System.Web.UI.Page { public static List<usp_SelectWidgetsResult> lstWidgets; public static int intEmpNo = 1; private string _NewWidgetID; public string NewWidgetID { get { return _NewWidgetID != null ? _NewWidgetID : null; } set { _NewWidgetID = value; } } private bool _IsDeleted; public bool IsDeleted { get { return _IsDeleted; } set { _IsDeleted = value; } //get { return ViewState["NewWidgetID"] != null ? ViewState["NewWidgetID"].ToString() : null; } //set { ViewState["NewWidgetID"] = value; } } private int _count = 0; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { intEmpNo = 1; BindDropDown(); SetDockZoneStyle(true, Color.Gray, BorderStyle.None); } } protected void Page_Init(object sender, EventArgs e) { string dockState = ""; lstWidgets = new DashboardDO().SelectWidgets(null, null); List<usp_SelectWidgetsPersonalizedResult> WPList = new DashboardDO().SelectWidgetsPersonalized(intEmpNo, null); if (WPList.Count > 0) { dockState = WPList[0].DockString; } string[] currentDockStates = dockState.Split('|'); _count = currentDockStates.Length; //Recreate the docks in order to ensure their proper operation for (int i = 0; i < _count; i++) { if (currentDockStates[i].Trim() != string.Empty) { RadDock dock = CreateRadDockFromState(currentDockStates[i]); dock.EnableAnimation = true; if (lstWidgets.Where(w => w.WidgetsName.Trim().ToUpper() == dock.Title.Trim().ToUpper()).ToList().Count > 0) { dock.ContentContainer.Controls.Add(LoadControl(lstWidgets.Where(w => w.WidgetsName.Trim().ToUpper() == dock.Title.Trim().ToUpper()).ToList()[0].WidgetsUrl)); } dlDashBoard.Controls.Add(dock); CreateSaveStateTrigger(dock); } } } private void BindDropDown() { //if (lstWidgets.Count < 1) //{ lstWidgets = new DashboardDO().SelectWidgets(intEmpNo, null); //} ddlWidgets.Items.Clear(); ddlWidgets.DataSource = lstWidgets; ddlWidgets.DataBind(); ddlWidgets.Items.Add(new RadComboBoxItem("Select Widget", "-1")); ddlWidgets.SelectedValue = "-1"; } private RadDock CreateRadDockFromState(string stringState) { System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); DockState state = serializer.Deserialize<DockState>(stringState); RadDock dock = new RadDock(); dock.ID = string.Format("RadDock{0}", state.UniqueName); dock.ApplyState(state); dock.EnableAnimation = true; dock.Command += new DockCommandEventHandler(dock_Command); dock.Commands.Add(new DockCloseCommand()); dock.Commands.Add(new DockExpandCollapseCommand()); return dock; } private void CreateSaveStateTrigger(RadDock dock) { dock.AutoPostBack = true; dock.CommandsAutoPostBack = true; AsyncPostBackTrigger saveStateTrigger = new AsyncPostBackTrigger(); saveStateTrigger.ControlID = dock.ID; saveStateTrigger.EventName = "DockPositionChanged"; UpdatePanel1.Triggers.Add(saveStateTrigger); saveStateTrigger = new AsyncPostBackTrigger(); saveStateTrigger.ControlID = dock.ID; saveStateTrigger.EventName = "Command"; UpdatePanel1.Triggers.Add(saveStateTrigger); } void dock_Command(object sender, DockCommandEventArgs e) { if (e.Command.Name == "Close") { ScriptManager.RegisterStartupScript( UpdatePanel1, this.GetType(), "RemoveDock", string.Format(@"function _removeDock() {{ Sys.Application.remove_load(_removeDock); $find('{0}').undock(); $get('{1}').appendChild($get('{0}')); $find('{0}').doPostBack('DockPositionChanged'); }}; Sys.Application.add_load(_removeDock);", ((RadDock)sender).ClientID, UpdatePanel1.ClientID), true); int val = new DashboardDO().DeleteWidgets(intEmpNo, ((RadDock)sender).Title.Trim()); IsDeleted = true; CommonFunctions.DeleteMessage(this.Page, val, ((RadDock)sender).Title); } } protected void lnkBtnAddWidgets_Click(object sender, EventArgs e) { if (ddlWidgets.SelectedValue != "-1") { RadDock dock = CreateRadDock(); UpdatePanel1.ContentTemplateContainer.Controls.Add(dock); NewWidgetID = ddlWidgets.SelectedValue; switch (ddlPosition.SelectedValue.ToUpper()) { case "TOP": ScriptManager.RegisterStartupScript( dock, this.GetType(), "AddDock", string.Format(@"function _addDock() {{ Sys.Application.remove_load(_addDock); $find('{1}').dock($find('{0}')); $find('{0}').doPostBack('DockPositionChanged'); }}; Sys.Application.add_load(_addDock);", dock.ClientID, dzTop.ClientID), true); break; case "LEFT": ScriptManager.RegisterStartupScript( dock, this.GetType(), "AddDock", string.Format(@"function _addDock() {{ Sys.Application.remove_load(_addDock); $find('{1}').dock($find('{0}')); $find('{0}').doPostBack('DockPositionChanged'); }}; Sys.Application.add_load(_addDock);", dock.ClientID, dzLeft.ClientID), true); break; case "RIGHT": ScriptManager.RegisterStartupScript( dock, this.GetType(), "AddDock", string.Format(@"function _addDock() {{ Sys.Application.remove_load(_addDock); $find('{1}').dock($find('{0}')); $find('{0}').doPostBack('DockPositionChanged'); }}; Sys.Application.add_load(_addDock);", dock.ClientID, dzRight.ClientID), true); break; } CreateSaveStateTrigger(dock); } } private RadDock CreateRadDock() { RadDock dock = new RadDock(); string WidgetsURL = lstWidgets.Where(w => w.WidgetsID == Convert.ToInt32(ddlWidgets.SelectedValue)).ToList()[0].WidgetsUrl; dock.UniqueName = Guid.NewGuid().ToString(); dock.ID = string.Format("RadDock{0}", dock.UniqueName); dock.Title = lstWidgets.Where(w => w.WidgetsID == Convert.ToInt32(ddlWidgets.SelectedValue)).ToList()[0].WidgetsName; dock.Width = Unit.Pixel(300); dock.EnableAnimation = true; dock.Commands.Add(new DockCloseCommand()); dock.Commands.Add(new DockExpandCollapseCommand()); dock.Command += new DockCommandEventHandler(dock_Command); dock.ContentContainer.Controls.Add(LoadControl(WidgetsURL)); return dock; } protected void dlDashBoard_SaveDockLayout(object sender, DockLayoutEventArgs e) { string dockState; System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); List<DockState> stateList = dlDashBoard.GetRegisteredDocksState(); StringBuilder serializedList = new StringBuilder(); int i = 0; while (i < stateList.Count) { if (stateList[i].Closed == false) { serializedList.Append(serializer.Serialize(stateList[i])); serializedList.Append("|"); } i++; } dockState = serializedList.ToString(); try { usp_SelectWidgetsPersonalizedResult WP = new usp_SelectWidgetsPersonalizedResult(); WP.EmpNo = intEmpNo; if (NewWidgetID != null) { WP.WidgetsID = NewWidgetID; } WP.DockString = dockState; if (IsDeleted == false) { int val = new DashboardDO().InsertWidgetsPersonalized(WP); if (val == 1) { NewWidgetID = null; BindDropDown(); ddlWidgets.SelectedValue = "-1"; } } } catch { } } protected void dlDashBoard_LoadDockLayout(object sender, DockLayoutEventArgs e) { System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); //Get saved state string from the database - set it to dockState variable for example string dockState = ""; try { List<usp_SelectWidgetsPersonalizedResult> WPList = new DashboardDO().SelectWidgetsPersonalized(intEmpNo, null); if (WPList.Count > 0) { dockState = WPList[0].DockString; } } catch { } string[] currentDockStates = dockState.Split('|'); foreach (string stringState in currentDockStates) { if (stringState.Trim() != string.Empty) { DockState state = serializer.Deserialize<DockState>(stringState); e.Positions[state.UniqueName] = state.DockZoneID; e.Indices[state.UniqueName] = state.Index; } } } protected void lnkBtnPersonalizePage_Click(object sender, EventArgs e) { SetDockZoneStyle(false, Color.Gray, BorderStyle.Dashed); } protected void lnkBtnClose_Click(object sender, EventArgs e) { SetDockZoneStyle(true, Color.Gray, BorderStyle.None); } private void SetDockZoneStyle(bool IsVisible, Color dzBorderColor, BorderStyle dzBorderStyle) { if (IsVisible == false) { lnkBtnPersonalizePage.Visible = false; pnlAddWidgets.Visible = true; if (dlDashBoard.GetRegisteredDocksState().Count > 0) { int i = 0; while (i < dlDashBoard.GetRegisteredDocksState().Count) { if (dlDashBoard.RegisteredDocks[i].Commands.Count == 0) { dlDashBoard.RegisteredDocks[i].Command += new DockCommandEventHandler(dock_Command); dlDashBoard.RegisteredDocks[i].Commands.Add(new DockCloseCommand()); dlDashBoard.RegisteredDocks[i].Commands.Add(new DockExpandCollapseCommand()); } dlDashBoard.RegisteredDocks[i].Pinned = false; i++; } } } else { lnkBtnPersonalizePage.Visible = true; pnlAddWidgets.Visible = false; if (dlDashBoard.GetRegisteredDocksState().Count > 0) { int i = 0; //dlDashBoard.RegisteredDocks[i].Commands.RemoveAt(0); //dlDashBoard.RegisteredDocks[i].Commands.RemoveAt(0); while (i < dlDashBoard.GetRegisteredDocksState().Count) { int k = dlDashBoard.RegisteredDocks[i].Commands.Count - 1; //for (int j = k; j >= 0; j--) //{ dlDashBoard.RegisteredDocks[i].Commands.RemoveAt(0); // dlDashBoard.RegisteredDocks[i].Commands.RemoveAt(0); //} //dlDashBoard.RegisteredDocks[i].Commands.RemoveAt(0); if (dlDashBoard.RegisteredDocks[i].Commands.Count > 0) { // dlDashBoard.RegisteredDocks[i].Commands.RemoveAt(0); //int k = dlDashBoard.RegisteredDocks[i].Commands.Count - 1; //for (int j = k; j >= 0; j--) //{ // dlDashBoard.RegisteredDocks[i].Commands.RemoveAt(j); //} // dlDashBoard.RegisteredDocks[i].Commands.RemoveAll(w => w.Name == "Close"); // dlDashBoard.RegisteredDocks[i].Commands.RemoveAll(w => w.Name == "ExpandCollapse"); //dlDashBoard.RegisteredDocks[i].Commands.RemoveRange(0, dlDashBoard.RegisteredDocks[i].Commands.Count); //dlDashBoard.RegisteredDocks[i].Commands.RemoveAt(0); //dlDashBoard.RegisteredDocks[i].Commands.RemoveRange(0, dlDashBoard.RegisteredDocks[i].Commands.Count); //int j = 0; //while (j < dlDashBoard.RegisteredDocks[i].Commands.Count) //{ // DockCommand item = new DockCommand(); // item = new DockCloseCommand(); // dlDashBoard.RegisteredDocks[i].Commands.RemoveRange(0,dlDashBoard.RegisteredDocks[i].Commands.Count-1); // j++; //} } dlDashBoard.RegisteredDocks[i].Pinned = true; i++; } } } dzTop.BorderColor = dzBorderColor; dzTop.BorderStyle = dzBorderStyle; dzLeft.BorderColor = dzBorderColor; dzLeft.BorderStyle = dzBorderStyle; dzRight.BorderColor = dzBorderColor; dzRight.BorderStyle = dzBorderStyle; } }<asp:UpdateProgress runat="server" ID="PageUpdateProgress" AssociatedUpdatePanelID="up_CSMD_Average_Response_Time" > <ProgressTemplate> <div id="IMGDIV" align="center" valign="middle" runat="server" style="position: absolute; left: 35%; top: 25%; visibility: visible; vertical-align: middle;" > <asp:Image ID="Image1" runat="server" ImageUrl="~/Images/loading.gif" ImageAlign="AbsMiddle" /> </div> </ProgressTemplate> </asp:UpdateProgress>rcTotalsMonth.PlotArea.XAxis[0].TextBlock.Text = String.Format("{0:MMM}", tPrevDate);
<telerik:RadGrid GridLines="None" PageSize="20" AutoGenerateColumns="false" Culture="fr-FR" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" AllowFilteringByColumn="true" AllowPaging="True" AllowSorting="True" ShowFooter="True" AllowAutomaticUpdates="True" AllowAutomaticDeletes="True"> <HeaderContextMenu EnableImageSprites="True" CssClass="GridContextMenu GridContextMenu_Default" /> <MasterTableView ShowGroupFooter="true" IsFilterItemExpanded="false"> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" EditText="Editer" CancelText="Annuler" UpdateText="Mettre à jour" InsertText="Ajouter" /> <telerik:GridButtonColumn CommandName="Delete" ButtonType="ImageButton" Text="Supprimer" /> </Columns> <EditFormSettings> <EditColumn ButtonType="ImageButton" EditText="Editer" CancelText="Annuler" UpdateText="Mettre à jour" InsertText="Ajouter" /> </EditFormSettings> </MasterTableView></telerik:RadGrid><telerik:RadGrid ID="grdCollections" runat="server" GridLines="None" AutoGenerateColumns="False" OnInsertCommand="grdCollections_Insert" OnUpdateCommand="grdCollections_Update" OnEditCommand="grdCollections_Command" AllowSorting="True" OnDeleteCommand="grdCollections_Command" OnNeedDataSource="grdCollections_NeedDataSource" OnCancelCommand="grdCollections_Command" OnItemDataBound="grdCollections_ItemDataBound" PageSize="10" > <MasterTableView EditMode="EditForms" CommandItemDisplay="Top" DataKeyNames="CollectionID" InsertItemDisplay="Bottom"> <CommandItemSettings ShowAddNewRecordButton="true" AddNewRecordImageUrl="~/Images/AddRecord.gif" AddNewRecordText="Add New Collection Entry" > </CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"><HeaderStyle Width="20px"></HeaderStyle></RowIndicatorColumn><ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"><HeaderStyle Width="20px"></HeaderStyle></ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="CollectionID" DataType="System.Int32" ReadOnly="true" FilterControlAltText="Filter CollectionID column" HeaderText="ID" SortExpression="CollectionID" UniqueName="CollectionID"> </telerik:GridBoundColumn> <telerik:GridDropDownColumn FilterControlAltText="Filter CreditorID column" UniqueName="CreditorID" DataField="CreditorID" HeaderText="*CreditorID" Visible="true" > </telerik:GridDropDownColumn> <telerik:GridDropDownColumn FilterControlAltText="Filter Name column" UniqueName="Name" DataField="Name" HeaderText="*Agency Name" ListTextField="Name" ListValueField="CreditorID"> </telerik:GridDropDownColumn> <telerik:GridBoundColumn DataField="AccountNumber" FilterControlAltText="Filter AccountNumber column" HeaderText="Account No." SortExpression="AccountNumber" UniqueName="AccountNumber"> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn FilterControlAltText="Filter RptdDate column" DataField="RptdDate" DataType="System.DateTime" HeaderText="*Opened Date" SortExpression="RptdDate" UniqueName="RptdDate" DataFormatString="{0:d}"> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="RvsdDate" DataType="System.DateTime" FilterControlAltText="Filter RvsdDate column" HeaderText="Date Revised" SortExpression="RvsdDate" UniqueName="RvsdDate" DataFormatString="{0:d}"> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="LastPmtDate" DataType="System.DateTime" FilterControlAltText="Filter LastPmtDate column" HeaderText="Last Payment Date" SortExpression="LastPmtDate" UniqueName="LastPmtDate" DataFormatString="{0:d}"> </telerik:GridDateTimeColumn> <telerik:GridNumericColumn DataField="Amount" DataType="System.Decimal" FilterControlAltText="Filter Amount column" HeaderText="Amount" SortExpression="Amount" UniqueName="Amount" DataFormatString="{0:C}"> </telerik:GridNumericColumn> <telerik:GridNumericColumn DataField="Balance" DataType="System.Decimal" FilterControlAltText="Filter Balance column" HeaderText="Total Balance" DataFormatString="{0:C}" SortExpression="Balance" UniqueName="Balance"> </telerik:GridNumericColumn> <telerik:GridEditCommandColumn FilterControlAltText="Filter EditCommandColumn column"> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn CommandName="Delete" FilterControlAltText="Filter column1 column" Text="Delete" UniqueName="column1"> </telerik:GridButtonColumn> </Columns> <EditFormSettings EditFormType="Template"> <EditColumn UniqueName="EditCommandColumn1"> </EditColumn> <FormTemplate> <table width="580px"> <tr> <td style="width:19%; text-align:right;"> <asp:Label ID="lblEditAgency" runat="server" Text="*Agency:"></asp:Label> </td> <td style="width:1%;"> </td> <td style="width:80%;"> <telerik:RadComboBox ID="cmbCreditors" runat="server" DataTextField="Name" DataValueField="CreditorID" DropDownWidth="440px" Height="150px" EmptyMessage="Select the name of the collection agency. If the agency is not on the list, click Add New"> <HeaderTemplate> <table style="width: 440px" cellspacing="0" cellpadding="0"> <tr> <td style="width:30px">ID </td> <td style="width:120px">Agency Name </td> <td style="width:140px">Address </td> <td style="width:75px">Phone </td> <td style="width:75px">Fax </td> </tr> </table> </HeaderTemplate> <ItemTemplate> <table style="width: 440px" cellspacing="0" cellpadding="0"> <tr> <td style="width:30px"><%# DataBinder.Eval(Container.DataItem, "CreditorID")%> </td> <td style="width:120px"><%# DataBinder.Eval(Container.DataItem, "Name")%> </td> <td style="width:140px"><%# DataBinder.Eval(Container.DataItem, "Address")%> </td> <td style="width:75px"><%# DataBinder.Eval(Container.DataItem, "Phone")%> </td> <td style="width:75px"><%# DataBinder.Eval(Container.DataItem, "Fax")%> </td> </tr> </table> </ItemTemplate> </telerik:RadComboBox> <asp:Button ID="Button3" Text="Add Agency" runat="server" OnClientClick="radbtnAddAgency(); return false;"> </asp:Button> </td> </tr> <tr> <td style="text-align:right;"> <asp:Label ID="Label2" runat="server" Text="*Opened Date:"></asp:Label> </td> <td> </td> <td> <telerik:RadDatePicker ID="DtPickerOpenedDate" runat="server"> </telerik:RadDatePicker> </td> </tr> <tr> <td style="text-align:right;"> <asp:Label ID="Label1" runat="server" Text="*Revised Date:"></asp:Label> </td> <td> </td> <td> <telerik:RadDatePicker ID="DtPickerRevisedDate" runat="server"> </telerik:RadDatePicker> </td> </tr> <tr> <td style="text-align:right;"> <asp:Label ID="Label4" runat="server" Text="Account Number:"></asp:Label> </td> <td> </td> <td> <telerik:RadTextBox ID="txtAccNumber" runat="server" Width="200px" EmptyMessage="Enter the internal account number if applicable"> </telerik:RadTextBox> </td> </tr> <tr> <td style="text-align:right;"> <asp:Label ID="Label5" runat="server" Text="Last Payment Date:"></asp:Label> </td> <td> </td> <td> <telerik:RadDatePicker ID="DtPickerLastPaymentDate" runat="server"> </telerik:RadDatePicker> </td> </tr> <tr> <td style="text-align:right;"> <asp:Label ID="Label6" runat="server" Text="Debt Amount:"></asp:Label> </td> <td> </td> <td> <telerik:RadNumericTextBox ID="txtDebtAmount" runat="server" Width="70px" Type="Currency" EmptyMessage="Click here to enter amount"> </telerik:RadNumericTextBox> </td> </tr> <tr> <td style="text-align:right;"> <asp:Label ID="Label7" runat="server" Text="Total Balance:"></asp:Label> </td> <td> </td> <td> <telerik:RadNumericTextBox ID="txtTotalBalance" runat="server" Width="70px" Type="Currency" EmptyMessage="Click here to enter amount"> </telerik:RadNumericTextBox> </td> </tr> <tr> <td colspan="3"> <asp:Button ID="btnSave" Text='<%# ((bool)DataBinder.Eval(Container, "OwnerTableView.IsItemInserted")) ? "Insert" : "Update" %>' runat="server" CommandName='<%# ((bool)DataBinder.Eval(Container, "OwnerTableView.IsItemInserted")) ? "PerformInsert" : "Update" %>'> </asp:Button> <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel"> </asp:Button> </td> </tr> </table> </FormTemplate> </EditFormSettings></MasterTableView><FilterMenu EnableImageSprites="False"></FilterMenu> <ClientSettings> <ClientEvents OnCommand="RaiseCommand" /> </ClientSettings><HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu> </telerik:RadGrid>protected void grdCollections_Insert(object sender, GridCommandEventArgs e) { GridEditFormInsertItem insItem = e.Item as GridEditFormInsertItem; //GridEditableItem editItem = e.Item.OwnerTableView.GetInsertItem(); int AgentId = 0; RadComboBox cmb = insItem.FindControl("cmbCreditors") as RadComboBox;//cmb shows null if ((cmb != null) && (cmb.DataSource != null)) { AgentId = Convert.ToInt32(cmb.SelectedValue); }//txtAmt shows null RadTextBox txtAmt = insItem.FindControl("txtDebtAmount") as RadTextBox;} protected void grdCollections_Update(object sender, GridCommandEventArgs e) { GridEditableItem editedItem = e.Item as GridEditableItem; int AgentId = 0; RadComboBox cmb = editedItem.FindControl("cmbCreditors") as RadComboBox;//cmb shows null if ((cmb != null) && (cmb.DataSource != null)) { AgentId = Convert.ToInt32(cmb.SelectedValue); }//txtAmt shows null RadTextBox txtAmt = editedItem.FindControl("txtDebtAmount") as RadTextBox; }
<div id="editor" class="input"> <telerik:RadEditor ID="txtText" runat="server" Height="200px" Width="400px" ToolTip="Enter a body" EnableEmbeddedSkins="false"> <Tools> <telerik:EditorToolGroup> <telerik:EditorTool Name="Bold" /> <telerik:EditorTool Name="Italic" /> <telerik:EditorTool Name="Underline" /> <telerik:EditorTool Name="Cut" /> <telerik:EditorTool Name="Copy" /> <telerik:EditorTool Name="Paste" /> <telerik:EditorTool Name="FontName" /> <telerik:EditorTool Name="FontSize" /> <telerik:EditorTool Name="ForeColor" /> <telerik:EditorTool Name="InsertUnorderedList" /> <telerik:EditorTool Name="Bold" /> </telerik:EditorToolGroup> </Tools> <Content> </Content> </telerik:RadEditor> </div>
if (!IsPostBack) { EditorToolGroup main = new EditorToolGroup(); txtText.Tools.Add(main); EditorTool InsertUnorderedList = new EditorTool(); InsertUnorderedList.Name = "InsertUnorderedList"; main.Tools.Add(InsertUnorderedList); }
We want to be able to add it in the ascx markup.


I have 5 tabs and each one load a web user control. I used RadTabStrip and RadMultiPage controls. my problem is that RadAjaxLoadingPanel only works in the first click but when I click for second time in any tab, this does not work. How can I show the loading image each time the user clicks a tab and needs to wait for being loading the user control?
<%
--<telerik:RadScriptManager ID="ScriptManager1" runat="server" />--%>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="rtsBooks">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rmpTreeviews" LoadingPanelID="ralpnlProgress"/>
<telerik:AjaxUpdatedControl ControlID="rtsBooks" LoadingPanelID="ralpnlProgress"/>
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="rmpTreeviews">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rmpTreeviews" LoadingPanelID="ralpnlProgress"/>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<
telerik:RadAjaxLoadingPanel ID="ralpnlProgress" runat="server" Transparency="20">
<img alt="Loading..." src="/_layouts/NIAMS.UCTreeview/Images/loading.gif"/>
</
telerik:RadAjaxLoadingPanel>
<%
--OnTabClick="RadTabStrip1_TabClick" --%>
<telerik:RadTabStrip ID="rtsBooks" runat="server" Skin="" OnTabClick="rtsBooks_TabClick"
MultiPageID="rmpTreeviews" Width="100%" Height="25" >
<Tabs>
<telerik:RadTab runat="server" ImageUrl="~/_layouts/NIAMS.UCTreeview/Images/HomeButton.png">
</telerik:RadTab>
<telerik:RadTab runat="server" ImageUrl="~/_layouts/NIAMS.UCTreeview/Images/WhiteButton.png">
</telerik:RadTab>
<telerik:RadTab runat="server" ImageUrl="~/_layouts/NIAMS.UCTreeview/Images/RedButton.png">
</telerik:RadTab>
<telerik:RadTab runat="server" ImageUrl="~/_layouts/NIAMS.UCTreeview/Images/BlueButton.png">
</telerik:RadTab>
<telerik:RadTab runat="server" ImageUrl="~/_layouts/NIAMS.UCTreeview/Images/YellowButton.png">
</telerik:RadTab>
<telerik:RadTab runat="server" ImageUrl="~/_layouts/NIAMS.UCTreeview/Images/GreenButton.png">
</telerik:RadTab>
</Tabs>
</
telerik:RadTabStrip>
<
div id="rightMenu" style="text-align: right; width: 950px;">
<div><asp:HyperLink ID="lnkPrint" Width="900" runat="server" NavigateUrl="~/projects/bb/WebPartPage/FullTableOfContentsBB.aspx" Target="_blank">Preview Full E-Briefing Book Table of Contents</asp:HyperLink></div>
</
div>
<telerik:RadMultiPage ID="rmpTreeviews" runat="server" SelectedIndex="0" CssClass="multiPage" RenderSelectedPageOnly="True">
<telerik:RadPageView ID="rdvHome" runat="server" width="980px">
<div class="HomeBoxHeader"></div>
<div style="padding-left:20px;">
<uc2:UCHome ID="UCHome1" runat="server" />
</div>
</telerik:RadPageView>
<telerik:RadPageView ID="rpvWhite" runat="server" width="998px">
<div class="WhiteBoxHeader"></div>
<asp:PlaceHolder ID="phWhite" runat="server"></asp:PlaceHolder>
</telerik:RadPageView>
<telerik:RadPageView ID="rpvRed" runat="server" width="998px">
<div class="RedBoxHeader"></div>
<asp:PlaceHolder ID="phRed" runat="server"></asp:PlaceHolder>
</telerik:RadPageView>
<telerik:RadPageView ID="rpvBlue" runat="server" width="998px">
<div class="BlueBoxHeader"></div>
<asp:PlaceHolder ID="phBlue" runat="server"></asp:PlaceHolder>
</telerik:RadPageView>
<telerik:RadPageView ID="rpvYellow" runat="server" width="998px">
<div class="YellowBoxHeader"></div>
<asp:PlaceHolder ID="phYellow" runat="server"></asp:PlaceHolder>
</telerik:RadPageView>
<telerik:RadPageView ID="rpvGreen" runat="server" width="998px">
<div class="GreenBoxHeader"></div>
<asp:PlaceHolder ID="phGreen" runat="server"></asp:PlaceHolder>
</telerik:RadPageView>
</telerik:RadMultiPage>
<telerik:RadFormDecorator runat="server" ID="RadFormDecorator1" DecoratedControls="Textarea" />