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.UI
Imports
System
Imports
System.Data
Imports
System.Data.SqlClient
Public
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