Dear All,
I am loading a blank row on page load. I am unable to add a new row in grid on Add Row context Radmenu item click. For your reference please go through the code below
following is the aspx code and server code. Any help will be greatly appreciated.
I am loading a blank row on page load. I am unable to add a new row in grid on Add Row context Radmenu item click. For your reference please go through the code below
following is the aspx code and server code. Any help will be greatly appreciated.
<%@ 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