or
<telerik:RadMenu ID="RadMenu1" runat="server" EnableEmbeddedSkins="False" Skin="MyOwn" EnableTextHTMLEncoding="True"> <Items> <telerik:RadMenuItem runat="server" HoveredImageUrl="~/gfx/home_hover.png" ImageUrl="~/gfx/home.png" NavigateUrl="~/About.aspx" SelectedImageUrl="~/gfx/home_hover.png"> </telerik:RadMenuItem> </Items> </telerik:RadMenu><telerik:RadGrid ID="RadGrid1" GridLines="None" runat="server" AllowAutomaticDeletes="True" AllowSorting="True" PageSize="25" AllowAutomaticUpdates="True" AllowMultiRowEdit="False" AutoGenerateColumns="False" AllowPaging="True" DataSourceID="DataSource1" OnItemUpdated="RadGrid1_ItemUpdated" AllowFilteringByColumn="True" OnItemDeleted="RadGrid1_ItemDeleted" OnDataBound="RadGrid1_DataBound"> <PagerStyle Mode="NextPrevAndNumeric" Position="TopAndBottom" PageSizeLabelText="Rows Per Page:" /> <MasterTableView Width="100%" CommandItemDisplay="TopAndBottom" DataSourceID="DataSource1" EditMode="InPlace" UseAllDataFields="True"> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> <ItemStyle CssClass="MyImageButton" /> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="InstallCount" HeaderText="Install Count" SortExpression="InstallCount" UniqueName="InstallCount" ReadOnly="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="PackageName" HeaderText="Package Name" SortExpression="PackageName" UniqueName="PackageName" ReadOnly="True"> </telerik:GridBoundColumn> <telerik:GridDropDownColumn DataField="ToBeTestedID" DataSourceID="SqlDataSource3" HeaderText="To Be Tested" ListTextField="ToBeTested" ListValueField="ToBeTestedID" UniqueName="ToBeTestedID" /> <telerik:GridDropDownColumn DataField="StatusID" DataSourceID="SqlDataSource2" HeaderText="Status" ListTextField="Status" ListValueField="StatusID" UniqueName="StatusID" /> <telerik:GridBoundColumn DataField="LOB" HeaderText="Line Of Business" SortExpression="LOB" UniqueName="LOB" ReadOnly="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="AlliancePartner" HeaderText="Alliance Partner" SortExpression="AlliancePartner" UniqueName="AlliancePartner" ReadOnly="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="DslID" HeaderText="Dsl ID" SortExpression="DslID" UniqueName="DslID" ReadOnly="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Contacts" HeaderText="Contacts" SortExpression="Contacts" UniqueName="Contacts" ReadOnly="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="EmailSentDate" HeaderText="Email Sent Date" SortExpression="EmailSentDate" UniqueName="EmailSentDate" ReadOnly="False"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <FormTableItemStyle Wrap="False"></FormTableItemStyle> <FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle> <FormMainTableStyle GridLines="None" CellSpacing="0" CellPadding="3" BackColor="White" Width="100%" /> <FormTableStyle CellSpacing="0" CellPadding="2" Height="110px" BackColor="White" /> <FormTableAlternatingItemStyle Wrap="False"></FormTableAlternatingItemStyle> <EditColumn ButtonType="ImageButton" UniqueName="EditCommandColumn1" CancelText="Cancel edit"> </EditColumn> <FormTableButtonRowStyle HorizontalAlign="Right" CssClass="EditFormButtonRow"></FormTableButtonRowStyle> </EditFormSettings> </MasterTableView> </telerik:RadGrid><asp:SqlDataSource SelectCommand="SELECT InstallCount,PackageName,ToBeTestedID,ToBeTested,StatusID,Status,LOB,AlliancePartner,DslID,Contacts,EmailSentDate FROM AppFactory.dbo.WFCpackageinstalls" UpdateCommand=" UPDATE AppFactory.dbo.WFCpackageinstalls SET [StatusID] = @StatusID, [ToBeTestedID] = @ToBeTestedID, [LOB] = @LOB, [AlliancePartner] = @AlliancePartner, [Contacts] = @Contacts, [EmailSentDate] = @EmailSentDate, [DslID] = @DslID WHERE [PackageName] = @PackageName" ConnectionString="<%$ ConnectionStrings:LC2ConnectionString %>" ProviderName="System.Data.SqlClient" ID="DataSource1" runat="server" > <UpdateParameters> <asp:Parameter Name="StatusID" Type="Int32" /> <asp:Parameter Name="ToBeTestedID" Type="Int32" /> <asp:Parameter Name="LOB" Type="String" /> <asp:Parameter Name="AlliancePartner" Type="String" /> <asp:Parameter Name="PackageName" Type="String" /> <asp:Parameter Name="Contacts" Type="String" /> <asp:Parameter Name="EmailSentDate" Type="String" /> <asp:Parameter Name="DslID" Type="String" /> </UpdateParameters> </asp:SqlDataSource> <asp:SqlDataSource SelectCommand="SELECT StatusID, Status FROM AppFactory.dbo.lu_tbl_status" ConnectionString="<%$ ConnectionStrings:LC2ConnectionString %>" ProviderName="System.Data.SqlClient" ID="SqlDataSource2" runat="server" /> <asp:SqlDataSource SelectCommand="SELECT ToBeTestedID, ToBeTested FROM AppFactory.dbo.lu_tbl_tobetested" ConnectionString="<%$ ConnectionStrings:LC2ConnectionString %>" ProviderName="System.Data.SqlClient" ID="SqlDataSource3" runat="server" />Imports Telerik.Web.UIPartial Class AppFactory Inherits System.Web.UI.Page Private gridMessage As String = Nothing Protected Sub RadGrid1_DataBound(ByVal sender As Object, ByVal e As EventArgs) If Not String.IsNullOrEmpty(gridMessage) Then DisplayMessage(gridMessage) End If End Sub Protected Sub RadGrid1_ItemDeleted(ByVal source As Object, ByVal e As Telerik.Web.UI.GridDeletedEventArgs) If Not e.Exception Is Nothing Then e.ExceptionHandled = True SetMessage("Delete failed. Reason: " + e.Exception.Message) Else SetMessage("Item deleted!") End If End Sub Protected Sub RadGrid1_ItemUpdated(ByVal source As Object, ByVal e As Telerik.Web.UI.GridUpdatedEventArgs) If Not e.Exception Is Nothing Then e.KeepInEditMode = True e.ExceptionHandled = True SetMessage("Update failed. Reason: " + e.Exception.Message) Else SetMessage("Item updated! " + source.ToString) End If End Sub Protected Sub RadGrid1_ItemInserted(ByVal source As Object, ByVal e As Telerik.Web.UI.GridInsertedEventArgs) If Not e.Exception Is Nothing Then e.ExceptionHandled = True e.KeepInInsertMode = True SetMessage("Insert failed. Reason: " + e.Exception.Message) Else SetMessage("New product is inserted!") End If End Sub Private Sub DisplayMessage(ByVal text As String) RadGrid1.Controls.Add(New LiteralControl(String.Format("<span style='color:red'>{0}</span>", text))) End Sub Private Sub SetMessage(ByVal message As String) gridMessage = message End SubEnd Class<asp:Panel ID="myPanel" runat="server"> <div align="center"> <telerik:RadNumericTextBox ID="txtV" runat="server" Width="155px" Height="32px" ShowSpinButtons="True" EnableSingleInputRendering="false" Type="Number" InvalidStyleDuration="100" Font-Size="20px" MinValue="100" Value="100"> <NumberFormat AllowRounding="False" KeepNotRoundedValue="False" /> <IncrementSettings Step="100" /> </telerik:RadNumericTextBox> </div></asp:Panel>private List<DockState> CurrentDockStates{ get { //Store the info about the added docks in the session. For real life // applications we recommend using database or other storage medium // for persisting this information. List<DockState> _currentDockStates = (List<DockState>)Session["CurrentDockStatesDynamicDocks"]; if (Object.Equals(_currentDockStates, null)) { _currentDockStates = new List<DockState>(); Session["CurrentDockStatesDynamicDocks"] = _currentDockStates; } return _currentDockStates; } set { Session["CurrentDockStatesDynamicDocks"] = value; }}private RadDock CreateRadDockFromState(DockState state){ RadDock dock = new RadDock(); try { dock.ID = string.Format("RadDock{0}", state.UniqueName); dock.ApplyState(state); dock.EnableRoundedCorners = true; dock.Command += new DockCommandEventHandler(dock_Command); dock.Commands.Add(new DockCloseCommand()); dock.Commands.Add(new DockExpandCollapseCommand()); var dockSaveCmd = new DockCommand(); dockSaveCmd.Name = "SaveToDB"; dockSaveCmd.Text = "Save"; dockSaveCmd.CssClass = "sdSaveCmd"; dockSaveCmd.OnClientCommand = "SaveStopToDB"; dock.Commands.Add(dockSaveCmd); } catch (Exception ex) { return null; throw new Exception(ex.Message, ex.InnerException); } return dock;}protected void Page_Init(object sender, EventArgs e){ //Recreate the docks in order to ensure their proper operation for (int i = 0; i < CurrentDockStates.Count; i++) { RadDock dock = CreateRadDockFromState(CurrentDockStates[i]); RadDockLayout1.Controls.Add(dock); CreateSaveStateTrigger(dock); }}private void CreateSaveStateTrigger(RadDock dock){ //Ensure that the RadDock control will initiate postback // when its position changes on the client or any of the commands is clicked. //Using the trigger we will "ajaxify" that postback. 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); } else if (e.Command.Name == "SaveToDB") { var dock = ((RadDock)sender); var stop = new Stop() { Id = int.Parse(dock.Tag), Name = ((RadTextBox)stopCtrl.FindControl("rtbName")).Text, Description = ((RadTextBox)stopCtrl.FindControl("TB_description")).Text, }; if (stop.Id < 0) { stop.Id = stop.Insert(); dock.Tag = stop.Id.ToString(); } else stop.Update(); }}protected void RadDockLayout1_LoadDockLayout(object sender, DockLayoutEventArgs e){ //Populate the event args with the state information. The RadDockLayout control // will automatically move the docks according that information. foreach (DockState state in CurrentDockStates) { e.Positions[state.UniqueName] = state.DockZoneID; e.Indices[state.UniqueName] = state.Index; }}protected void RadDockLayout1_SaveDockLayout(object sender, DockLayoutEventArgs e){ //Save the dock state in the page Session. This will enable us // to recreate the dock in the next Page_Init. CurrentDockStates = RadDockLayout1.GetRegisteredDocksState();}protected void RadButtonCreate_Click(object sender, EventArgs e){ var dock = new RadDock(); dock.DockMode = DockMode.Docked; dock.EnableRoundedCorners = true; dock.UniqueName = Guid.NewGuid().ToString(); dock.ID = string.Format("RadDock{0}", dock.UniqueName); dock.Tag = "-1"; StopFormTplEmpty widget = (StopFormTplEmpty)GlobalUtils.LoadControl(this, "~/Templates/StopFormTplEmpty.ascx"); widget.EnableViewState = true; dock.ContentContainer.Controls.Add(widget); dock.TitlebarTemplate = new DockTitleTemplate(dock, StopType.Unknown, "New"); dock.Width = Unit.Percentage(100); dock.Height = Unit.Pixel(420); dock.Commands.Add(new DockCloseCommand()); dock.Commands.Add(new DockExpandCollapseCommand()); var dockSaveCmd = new DockCommand(); dockSaveCmd.Name = "SaveToDB"; dockSaveCmd.Text = "Save"; dockSaveCmd.CssClass = "sdSaveCmd"; dockSaveCmd.OnClientCommand = "SaveStopToDB"; dock.Commands.Add(dockSaveCmd); dock.CommandsAutoPostBack = true; dock.Command += new DockCommandEventHandler(dock_Command); UpdatePanel1.ContentTemplateContainer.Controls.Add(dock); ScriptManager.RegisterStartupScript( dock, this.GetType(), "AddDock", string.Format(@"function _addDock() {{ Sys.Application.remove_load(_addDock); $find('{1}').dock($find('{0}'),{2}); $find('{0}').doPostBack('DockPositionChanged'); }}; Sys.Application.add_load(_addDock);", dock.ClientID, RadDockZoneStops.ID, 0), true); CreateSaveStateTrigger(dock);}