<%@ 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
<
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;