<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm4.aspx.vb" Inherits="BNBERP.WebForm4" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><!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></head><body><telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"><script type="text/javascript"> function RowContextMenu(sender, eventArgs) { var menu = $find("<%=RadMenu1.ClientID %>"); var evt = eventArgs.get_domEvent(); if (evt.target.tagName == "INPUT" || evt.target.tagName == "A") { return; } var index = eventArgs.get_itemIndexHierarchical(); document.getElementById("radGridClickedRowIndex").value = index; sender.get_masterTableView().selectItem(sender.get_masterTableView().get_dataItems()[index].get_element(), true); menu.show(evt); evt.cancelBubble = true; evt.returnValue = false; if (evt.stopPropagation) { evt.stopPropagation(); evt.preventDefault(); } } </script></telerik:RadCodeBlock> <form id="form1" runat="server"><div> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadButton ID="RadButton1" runat="server" Text="Get Data"> </telerik:RadButton> <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" Skin="Forest" EnableHeaderContextMenu="True"> <MasterTableView ><CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <Columns> <telerik:GridTemplateColumn HeaderText="Item No"> <ItemTemplate> <telerik:RadComboBox ID="RadComboBox1" runat="server" DataSourceID="SqlDataSource1" DataTextField="ItemCode" DataValueField="ItemCode"> </telerik:RadComboBox> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SBODemoINConnectionString %>" SelectCommand="SELECT [ItemCode], [ItemName] FROM [OITM]"> </asp:SqlDataSource> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Item Description"> <ItemTemplate> <telerik:RadComboBox ID="RadComboBox2" runat="server" DataSourceID="SqlDataSource2" DataTextField="ItemName" DataValueField="ItemCode"> </telerik:RadComboBox> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:SBODemoINConnectionString %>" SelectCommand="SELECT [ItemCode], [ItemName] FROM [OITM]"> </asp:SqlDataSource> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="On Hand"> <ItemTemplate> <telerik:RadTextBox ID="RadTextBox3" Runat="server"> </telerik:RadTextBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Prefered Vendor"> <ItemTemplate> <telerik:RadTextBox ID="RadTextBox4" Runat="server"> </telerik:RadTextBox> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings> <ClientEvents OnRowContextMenu="RowContextMenu" /> </ClientSettings><HeaderContextMenu EnableImageSprites="True" CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu> </telerik:RadGrid> <input type="hidden" id="radGridClickedRowIndex" name="radGridClickedRowIndex" /> <telerik:RadContextMenu ID="RadMenu1" runat="server" EnableRoundedCorners="true" EnableShadows="true"> <Items> <telerik:RadMenuItem Text="Add Row" /> <telerik:RadMenuItem Text="Delete Row" /> <telerik:RadMenuItem Text="Duplicate Row"/> </Items> </telerik:RadContextMenu> <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" Height="200px" Width="300px"> </telerik:RadAjaxPanel> </div> </form></body></html>Imports Telerik.Web.UIImports SystemImports System.DataImports System.Data.SqlClientPublic Class WebForm4 Inherits System.Web.UI.Page Dim sqlCon As SqlConnection Dim sqlDa As SqlDataAdapter Dim sqlDs As DataSet Dim sqlDt, sqlDt1 As DataTable Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Try If Not Page.IsPostBack Then 'Dim box1 As RadComboBox = DirectCast(RadGrid1.Items(0).FindControl("RadComboBox1"), RadComboBox) 'Dim col As GridTemplateColumn 'col = RadGrid1.Columns(0) sqlCon = New SqlConnection("Data Source=BNBSOFT-EF98F06\SQLEXPRESS;Initial Catalog=SBODemoIN;Integrated Security=True") sqlDa = New SqlDataAdapter("SELECT [ItemCode],[ItemName],[OnHand],[CardCode] FROM [SBODemoIN].[dbo].[OITM]", sqlCon) sqlDs = New DataSet() sqlDt = New DataTable() sqlDa.FillSchema(sqlDt, SchemaType.Source) For Each column As DataColumn In sqlDt.Columns() column.AllowDBNull = "True" Next SetInitialRow(sqlDt) End If Catch ex As Exception End Try End Sub Private Sub FillItemsCombo() sqlCon = New SqlConnection("Data Source=BNBSOFT-EF98F06\SQLEXPRESS;Initial Catalog=SBODemoIN;Integrated Security=True") sqlDa = New SqlDataAdapter("SELECT [ItemCode],[ItemName],[OnHand],[CardCode] FROM [SBODemoIN].[dbo].[OITM]", sqlCon) End Sub Private Sub SetInitialRow(ByRef dt1 As DataTable) Dim dt As New DataTable() dt = dt1 Dim dr As DataRow = Nothing dr = dt.NewRow() dr.Item(2) = "4.0" dt.Rows.Add(dr) 'Store the DataTable in ViewState ViewState("CurrentTable") = dt RadGrid1.DataSource = dt RadGrid1.DataBind() SetPreviousData() 'DirectCast(item("YourColumnUniqueName").FindControl("IDofYourRadTextBox"), RadTextBox).Text() End Sub Private Sub SetPreviousData() Dim rowIndex As Integer = 0 If ViewState("CurrentTable") IsNot Nothing Then Dim dt As DataTable = DirectCast(ViewState("CurrentTable"), DataTable) If dt.Rows.Count > 0 Then For i As Integer = 0 To dt.Rows.Count - 1 Dim box1 As RadComboBox = DirectCast(RadGrid1.Items(rowIndex).Cells(0).FindControl("RadComboBox1"), RadComboBox) Dim box2 As RadComboBox = DirectCast(RadGrid1.Items(rowIndex).Cells(1).FindControl("RadComboBox2"), RadComboBox) Dim box3 As RadTextBox = DirectCast(RadGrid1.Items(rowIndex).Cells(2).FindControl("RadTextBox3"), RadTextBox) Dim box4 As RadTextBox = DirectCast(RadGrid1.Items(rowIndex).Cells(3).FindControl("RadTextBox4"), RadTextBox) 'If box1.Items.Count <= 0 Then ' sqlCon = New SqlConnection("Data Source=BNBSOFT-EF98F06\SQLEXPRESS;Initial Catalog=SBODemoIN;Integrated Security=True") ' sqlDa = New SqlDataAdapter("SELECT [ItemCode],[ItemName],[OnHand],[CardCode] FROM [SBODemoIN].[dbo].[OITM]", sqlCon) ' sqlDs = New DataSet ' sqlDa.Fill(sqlDs) ' Dim rs, rs1 As RadComboBoxItem ' For j As Integer = 0 To sqlDs.Tables(0).Rows.Count ' rs = New RadComboBoxItem(sqlDs.Tables(0).Rows(j)(0).ToString(), sqlDs.Tables(0).Rows(j)(0).ToString()) ' rs1 = New RadComboBoxItem(sqlDs.Tables(0).Rows(j)(0).ToString(), sqlDs.Tables(0).Rows(j)(0).ToString()) ' box1.Items.Add(rs) ' box2.Items.Add(rs1) ' Next 'End If 'box1.SelectedValue = dt.Rows(i)("ItemCode").ToString() box1.SelectedIndex = 0 box2.SelectedIndex = 0 ' box2.Text = dt.Rows(i)("ItemName").ToString() box3.Text = dt.Rows(i)("OnHand").ToString() box4.Text = dt.Rows(i)("CardCode").ToString() rowIndex += 1 Next End If End If End Sub Private Sub AddNewRowToGrid() Dim rowIndex As Integer = 0 If ViewState("CurrentTable") IsNot Nothing Then Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable) Dim drCurrentRow As DataRow = Nothing If dtCurrentTable.Rows.Count > 0 Then For i As Integer = 1 To dtCurrentTable.Rows.Count 'extract the TextBox values Dim box1 As RadComboBox = DirectCast(RadGrid1.Items(rowIndex).Cells(0).FindControl("RadComboBox1"), RadComboBox) Dim box2 As RadComboBox = DirectCast(RadGrid1.Items(rowIndex).Cells(1).FindControl("RadComboBox2"), RadComboBox) Dim box3 As RadTextBox = DirectCast(RadGrid1.Items(rowIndex).Cells(2).FindControl("RadTextBox3"), RadTextBox) Dim box4 As RadTextBox = DirectCast(RadGrid1.Items(rowIndex).Cells(3).FindControl("RadTextBox4"), RadTextBox) drCurrentRow = dtCurrentTable.NewRow() dtCurrentTable.Rows(i - 1)("ItemCode") = box1.SelectedItem dtCurrentTable.Rows(i - 1)("ItemName") = box2.SelectedItem dtCurrentTable.Rows(i - 1)("OnHand") = box3.Text dtCurrentTable.Rows(i - 1)("CardCode") = box4.Text rowIndex += 1 Next dtCurrentTable.Rows.Add(drCurrentRow) ViewState("CurrentTable") = dtCurrentTable RadGrid1.DataSource = dtCurrentTable RadGrid1.DataBind() End If Else Response.Write("ViewState is null") End If 'Set Previous Data on Postbacks SetPreviousData() End Sub Private Sub RadMenu1_ItemClick(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadMenuEventArgs) Handles RadMenu1.ItemClick Dim radGridClickedRowIndex As Integer Try radGridClickedRowIndex = Convert.ToInt32(Request.Form("radGridClickedRowIndex")) Select Case e.Item.Text Case "Duplicate Row" 'AddDuplicateRowToGrid(radGridClickedRowIndex) Exit Select Case "Add Row" AddNewRowToGrid() Exit Select Case "Delete Row" 'DeleteRowFromGrid(radGridClickedRowIndex) 'RadGrid1.Items(radGridClickedRowIndex). 'RadGrid1.MasterTableView.PerformDelete(RadGrid1.Items(radGridClickedRowIndex)) Exit Select End Select Catch ex As Exception End Try End Sub Protected Sub RadButton1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles RadButton1.Click Try AddNewRowToGrid() Catch ex As Exception End Try End Sub End Class<telerik:RadGrid ID="timesheetGrid" runat="server" GridLines="None" Skin="Windows7"AllowSorting="True" ShowGroupPanel="True" AutoGenerateColumns="False" AllowPaging="True" PageSize="15" ShowStatusBar="True" AllowFilteringByColumn="True" AllowMultiRowSelection="True" OnNeedDataSource="timesheetGrid_NeedDataSource" OnPreRender="timesheetGrid_PreRender" ViewStateMode="Enabled" onitemdatabound="timesheetGrid_ItemDataBound" Width="970px"> <ClientSettings EnableRowHoverStyle="true" AllowColumnsReorder="True" ReorderColumnsOnClient="True" AllowDragToGroup="True"> <Selecting AllowRowSelect="True" /> <ClientEvents OnRowDblClick="RowDblClick" /> </ClientSettings> <MasterTableView DataKeyNames="ID" EditMode="EditForms"> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <Columns> <telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" /> <telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="ID" Visible="False" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="From" DataType="System.DateTime" HeaderText="Date" UniqueName="DateFrom" ReadOnly="true" DataFormatString="{0:dd/MM/yyyy}" FilterControlWidth="100px" HeaderStyle-Width="100px"> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn DataField="User.UserName" HeaderText="User" UniqueName="User" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridNumericColumn UniqueName="Duration" HeaderText="Duration" DataType="System.Double" HeaderStyle-Width="30px" FilterControlWidth="30px"> <ItemStyle HorizontalAlign="Right"/> </telerik:GridNumericColumn> <telerik:GridBoundColumn DataField="Description" HeaderText="Description" UniqueName="Description"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="DocketNo" HeaderText="Docket No" UniqueName="DocketNo" ReadOnly="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FileCode" HeaderText="File Code" UniqueName="FileCode" HeaderStyle-Width="50px" FilterControlWidth="50px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FileCodeID" HeaderText="File Code ID" UniqueName="FileCodeID" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CostCenter" HeaderText="Cost Center" UniqueName="CostCenter" HeaderStyle-Width="50px" FilterControlWidth="50px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CostCenterID" HeaderText="Cost Center ID" UniqueName="CostCenterID" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CompanyID" HeaderText="Company ID" UniqueName="CompanyID" Visible="false"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="IsNegativeTimesheet" DataType="System.Boolean" HeaderText="Negative Timesheet" UniqueName="NegativeTimesheet" ReadOnly="true"> </telerik:GridCheckBoxColumn> <telerik:GridCheckBoxColumn DataField="IsOvertime" DataType="System.Boolean" HeaderText="Overtime" UniqueName="Overtime" ReadOnly="true"> </telerik:GridCheckBoxColumn> </Columns> <EditFormSettings UserControlName="UserControls/TimesheetEdit.ascx" EditFormType="WebUserControl"> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <PagerStyle Mode="NumericPages" VerticalAlign="Bottom" /> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Windows7"> </HeaderContextMenu></telerik:RadGrid>protected void timesheetGrid_ItemDataBound(object sender, GridItemEventArgs e){ if (e.Item is GridDataItem) { GridDataItem row = e.Item as GridDataItem; TimeSheet item = e.Item.DataItem as TimeSheet; if (item != null) { double duration = item.To.TimeOfDay.TotalHours - item.From.TimeOfDay.TotalHours; row["Duration"].Text = duration.ToString(); } else { row["Duration"].Text = "0"; } }}<telerik
:RadGrid AutoGenerateColumns="true" ID="grid" runat="server" AllowSorting="True"
AllowPaging="true" ShowFooter="false">
<GroupHeaderItemStyle></GroupHeaderItemStyle>
<FilterMenu>
</FilterMenu>
<MasterTableView CommandItemDisplay="Top">
<PagerStyle Mode="NextPrevAndNumeric" />
<RowIndicatorColumn Visible="False" UniqueName="RowIndicator">
<HeaderStyle Width="20px"></HeaderStyle>
<ItemStyle></ItemStyle>
</RowIndicatorColumn>
<EditFormSettings>
<EditColumn Visible="false" UniqueName="EditCommandColumn">
</EditColumn>
</EditFormSettings>
<ExpandCollapseColumn Visible="False" UniqueName="ExpandColumn" ButtonType="ImageButton">
<HeaderStyle Width="19px"></HeaderStyle>
</ExpandCollapseColumn>
<CommandItemTemplate>
</CommandItemTemplate>
<Columns>
<telerik:GridTemplateColumn HeaderText="" UniqueName="Edit"
AllowFiltering="false">
<HeaderStyle Width="1%" />
<itemtemplate>
<a href="#" id="A3" title="Edit" onclick="OpenWindow(<%# DataBinder.Eval(Container.DataItem,"id") %>)">
<%
--<img onclick="javascript:handler('','ctl00_MainContentHolder_RadPanelBar3_i0_i0_grid','<%# Container.ItemIndex %>')" style="border: 0" src="images/Edit.png" alt="Edit" />--%>
<eui:eLabel ID="lblEdit" runat="server" Text="Edit" CssClass="label" ForeColor="Blue"></eui:eLabel>
</a>
</itemtemplate>
<itemstyle cssclass="MyImageButton" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="" UniqueName="Delete"
AllowFiltering="false">
<HeaderStyle Width="1%" />
<itemtemplate>
<asp:TextBox id="txt1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "id")%>' style="display:none" ></asp:TextBox>
<a href="#" id='<%# DataBinder.Eval(Container.DataItem, "id")%>' title="Delete" onclick='Textt(this)'>
<%
--<img onclick="javascript:handler('','ctl00_MainContentHolder_RadPanelBar3_i0_i0_grid','<%# Container.ItemIndex %>')" style="border: 0" src="images/Delete.png" alt="Delete" />--%>
<eui:eLabel ID="lblDelete" runat="server" Text="Delete" CssClass="label" ForeColor="Blue"></eui:eLabel>
</a>
</itemtemplate>
<itemstyle cssclass="MyImageButton" />
</telerik:GridTemplateColumn>
</Columns>
<ItemStyle></ItemStyle>
<AlternatingItemStyle/>
<CommandItemStyle />
</MasterTableView>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ClientSettings EnableRowHoverStyle="false">
<ClientEvents />
<Selecting AllowRowSelect="false"></Selecting>
<Resizing AllowRowResize="false" EnableRealTimeResize="false" ResizeGridOnColumnResize="false"
AllowColumnResize="false"></Resizing>
</ClientSettings>
</telerik:RadGrid>
int i = ((GridDataItem)(((RadNumericTextBox)sender).NamingContainer)).ItemIndex;I've found what appears to be a bug with the bullets and number options in the Editor control.
When in the editor enter some text and click the Numbering button to give you something like this:
Press ENTER twice to get back to a normal paragraph and then enter another line of text with a bullet. This will either work (randomly) or will indent the text directly below the numbered list above as a bullet giving a <UL> inside of the <OL> tag above it. If you then click the bullet button to remove the bullet it will be removed but then cannot be put back again using the button. Once you're in this position it seems impossible to reformat everything again and the entire section must be removed including the <OL> above or you never get the items where intended.
Ironically whilst trying to give examples in this post I have come across the same problem! I don't know if this page is using the same control or not but it's most frustrating.
Is this something you've come across?
Thanks
Dave
