Hello, I have two grids on the same page in batch edit mode. When I submit a page via javascript code the second grid has command type of "Update" instead of "Insert". Please help!
<
div
class
=
"grid__col grid__col--1-of-2"
>
<
p
>Prescriptions</
p
>
<
telerik:RadGrid
ID
=
"gridPrescriptions"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowAutomaticInserts
=
"true"
AllowAutomaticUpdates
=
"true"
AllowSorting
=
"True"
AllowPaging
=
"True"
OnNeedDataSource
=
"gridPrescriptions_NeedDataSource"
Width
=
"100%"
DataKeyNames
=
"EscalationCaseRxId"
OnBatchEditCommand
=
"gridPrescriptions_BatchEditCommand"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
EditMode
=
"Batch"
>
<
BatchEditingSettings
EditType
=
"Row"
/>
<
CommandItemSettings
ShowSaveChangesButton
=
"false"
ShowRefreshButton
=
"false"
ShowCancelChangesButton
=
"false"
/>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"RxNumber"
HeaderText
=
"Prescription Number *"
UniqueName
=
"RxNumber"
MaxLength
=
"50"
HeaderStyle-Width
=
"300"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ForeColor
=
"Red"
Text
=
"*This field is required"
runat
=
"server"
>
</
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridBoundColumn
>
<
telerik:GridDateTimeColumn
DataField
=
"DateOfService"
HeaderText
=
"Date of Service *"
UniqueName
=
"DateOfService"
HeaderStyle-Width
=
"400"
DataFormatString
=
"{0:MM/dd/yyyy}"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ForeColor
=
"Red"
Text
=
"*This field is required"
runat
=
"server"
>
</
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridDateTimeColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
<
div
class
=
"grid__col grid__col--1-of-2"
>
<
p
>Benefit Verification</
p
>
<
telerik:RadGrid
ID
=
"gridBenefitVerification"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowAutomaticInserts
=
"true"
AllowAutomaticUpdates
=
"true"
AllowSorting
=
"false"
AllowPaging
=
"True"
OnNeedDataSource
=
"gridBenefitVerification_NeedDataSource"
Width
=
"100%"
DataKeyNames
=
"EscalationCaseBvId"
OnBatchEditCommand
=
"gridBenefitVerification_BatchEditCommand"
>
<
MasterTableView
CommandItemDisplay
=
"Top"
EditMode
=
"Batch"
>
<
BatchEditingSettings
EditType
=
"Row"
/>
<
CommandItemSettings
ShowSaveChangesButton
=
"false"
ShowRefreshButton
=
"false"
ShowCancelChangesButton
=
"false"
/>
<
Columns
>
<
telerik:GridDateTimeColumn
DataField
=
"DateVerified"
HeaderText
=
"Date Benefit Verified*"
UniqueName
=
"DateVerified"
HeaderStyle-Width
=
"400"
DataFormatString
=
"{0:MM/dd/yyyy}"
>
<
ColumnValidationSettings
EnableRequiredFieldValidation
=
"true"
>
<
RequiredFieldValidator
ForeColor
=
"Red"
Text
=
"*This field is required"
runat
=
"server"
>
</
RequiredFieldValidator
>
</
ColumnValidationSettings
>
</
telerik:GridDateTimeColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
div
>
function saveChanges() {
if (Page_IsValid) {
<%--var grid = $find("<%= gridPrescriptions.ClientID %>");
if (grid.get_masterTableView().get_dataItems().length > 0) {
grid.get_batchEditingManager().saveChanges(grid.get_masterTableView());
}
else {
var label = document.getElementById("<%= lblMessage.ClientID%>");
label.innerText = "Please add at least one prescription.";
label.style.color = "red";
label.style.display = "";
document.body.scrollTop = document.documentElement.scrollTop = 0;
}--%>
var gridRx = $find("<%= gridPrescriptions.ClientID %>");
var masterTableRx = gridRx.get_masterTableView();
if (masterTableRx.get_dataItems().length > 0) {
var gridBv = $find("<%= gridBenefitVerification.ClientID %>");
var masterTableBv = gridBv.get_masterTableView();
var batchEditManager = gridBv.get_batchEditingManager();
var tables = [];
//var changes1 = batchEditManager._changes;
//var changes2 = gridRx.get_batchEditingManager()._changes;
tables.push(masterTableRx);
tables.push(masterTableBv);
batchEditManager.saveTableChanges(tables);
}
else
{
var label = document.getElementById("<%= lblMessage.ClientID%>");
label.innerText = "Please add at least one prescription.";
label.style.color = "red";
label.style.display = "";
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
}
}
9 Answers, 1 is accepted
Hi,
Did you find a fix/workaround to resolve your issue? We're having the same issue. When insert, the command.Type shows "insert" on IE/Firefox, but it shows "update" on Chrome. See below code.
Protected Sub dgPersonSrv_BatchEditCommand(sender As Object, e As Telerik.Web.UI.GridBatchEditingEventArgs) Handles dgPersonSrv.BatchEditCommand
For Each command As GridBatchEditingCommand In e.Commands
Dim ddlEmpName As RadComboBox = dgPersonSrv.FindControl(dgPersonSrv.MasterTableView.ClientID + "_EMPID").FindControl("ddlEmpName")
Dim ddlPosition As RadComboBox = dgPersonSrv.FindControl(dgPersonSrv.MasterTableView.ClientID + "_POSITIONID").FindControl("ddlPosition")
Dim newValues As Hashtable = command.NewValues
Dim oldValues As Hashtable = command.OldValues
Dim dt = TryCast(Session("dtPersonSrv"), DataTable)
dt.Columns("EXPENDITURE").AllowDBNull = True
dt.Columns("EXPENDITURETODATE").AllowDBNull = True
Dim decValue As Decimal, decExp As Decimal, decExpToDate As Decimal
Dim i As Integer
Select Case command.Type
Case GridBatchEditingCommandType.Insert
Dim newRow As DataRow = dt.NewRow()
newRow.Item("ID") = dt.Rows.Count + 1
newRow.Item("EMPID") = If(newValues("EMPID") Is Nothing, "", newValues("EMPID"))
newRow.Item("EmployeeName") = ddlEmpName.Text
newRow.Item("POSITIONID") = If(newValues("POSITIONID") Is Nothing, "", newValues("POSITIONID"))
newRow.Item("PositionTitle") = ddlPosition.Text
If Not newValues("SALARY") Is Nothing AndAlso Decimal.TryParse(newValues("SALARY").ToString(), decValue) Then
newRow.Item("SALARY") = decValue
Else
newRow.Item("SALARY") = 0
End If
If Not newValues("BENEFITS") Is Nothing AndAlso Decimal.TryParse(newValues("BENEFITS").ToString(), decValue) Then
newRow.Item("BENEFITS") = decValue
Else
newRow.Item("BENEFITS") = DBNull.Value
End If
newRow.Item("EXPENDITURE") = 0
newRow.Item("EXPENDITURETODATE") = 0
newRow.Item("APPROVED") = If(newValues("APPROVED") Is Nothing, DBNull.Value, newValues("APPROVED"))
If newRow.Item("EMPID").ToString.Trim <> "" Or newRow.Item("POSITIONID").ToString.Trim <> "" Or newRow.Item("SALARY").ToString.Trim <> "" Or
newRow.Item("BENEFITS").ToString.Trim <> "" Or newRow.Item("APPROVED").ToString.Trim <> "" Then
dt.Rows.InsertAt(newRow, 0)
End If
Case GridBatchEditingCommandType.Delete
For Each row As DataRow In dt.Select("ID='" + oldValues("ID").ToString() + "'")
row.Delete()
Next
dt.AcceptChanges()
'Reset RowID
i = 1
dt.DefaultView.Sort = "ID ASC"
dt = dt.DefaultView.ToTable()
dt.Columns("ID").ReadOnly = False
For Each row As DataRow In dt.Rows
row.Item("ID") = i
i += 1
Next
dt.AcceptChanges()
Case GridBatchEditingCommandType.Update
If oldValues IsNot Nothing And newValues IsNot Nothing Then
If oldValues.Count > 0 And newValues.Count > 0 Then
Dim curRow = dt.Select("ID='" + oldValues("ID").ToString() + "'").ToList()
If curRow.Count() > 0 Then
decExp = curRow(0).Item("EXPENDITURE")
decExpToDate = curRow(0).Item("EXPENDITURETODATE")
End If
For Each row As DataRow In dt.Select("ID='" + oldValues("ID").ToString() + "'")
row.Delete()
Next
For Each row As DataRow In dt.Select("ID='" + newValues("ID").ToString() + "'")
row.Delete()
Next
dt.AcceptChanges()
Dim newRow As DataRow = dt.NewRow()
newRow.Item("ID") = oldValues("ID")
newRow.Item("EMPID") = If(newValues("EMPID") Is Nothing, "", newValues("EMPID"))
newRow.Item("EmployeeName") = ddlEmpName.Text
newRow.Item("POSITIONID") = If(newValues("POSITIONID") Is Nothing, "", newValues("POSITIONID"))
newRow.Item("PositionTitle") = ddlPosition.Text
If Not newValues("SALARY") Is Nothing AndAlso Decimal.TryParse(newValues("SALARY").ToString(), decValue) Then
newRow.Item("SALARY") = decValue
Else
newRow.Item("SALARY") = DBNull.Value
End If
If Not newValues("BENEFITS") Is Nothing AndAlso Decimal.TryParse(newValues("BENEFITS").ToString(), decValue) Then
newRow.Item("BENEFITS") = decValue
Else
newRow.Item("BENEFITS") = DBNull.Value
End If
newRow.Item("EXPENDITURE") = decExp
newRow.Item("EXPENDITURETODATE") = decExpToDate
newRow.Item("APPROVED") = If(newValues("APPROVED") Is Nothing, DBNull.Value, newValues("APPROVED"))
dt.Rows.InsertAt(newRow, 0)
End If
End If
End Select
Session("dtPersonSrv") = dt
dgPersonSrv.DataSource = dt
dgPersonSrv.Rebind()
dgPersonSrv.Focus()
Next
End Sub
Hi Steve,
I also answered the support ticket you opened for the same issue but I will share my answer with the Forum community as well:
I have tested this behavior with a basic Grid configuration and it seems that the Command Types are correct in all browsers.
Please test the attached sample and see if that works on your end.
To be able to help identify the problem of your app, I would need a sample that replicates the issue. For that purpose, you can modify my sample that will behave in the way you explained, and send it back to me. I will then troubleshoot the issue locally.
I look forward to hearing from you.
Regards,
Attila Antal
Progress Telerik
Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.
Hi,
I worked for me too. We use similar code in our application, but it does not work on some of the web pages. We found that if we trigger undefined method in the grid that will change the command.type from "update" to "insert" to work. It is very strange, but it works on Chrome.
Hi Steve,
I can check the problem if you edit my sample to replicate the issue.
Then I could tell exactly what causes it.
Regards,
Attila Antal
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.
Hi,
Is that possible we can have a conf call and sharing the screen so we can show you what happened ? Thanks
Hi,
One more question, do we need to purchase Telerik report server in order to use the Telerik Reporting ?
Thanks,
Steve
Hi Steve,
I suggest that we discuss the problems in your Formal Support ticket and we will share the answer in the Forum thread once the issue is resolved.
Regards,
Attila Antal
Progress Telerik
Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.
Hi,
I include our source codes. The trick is to add line 15 (see attached screenshot) to change the command.type from update to insert in Chrome when inserting a new row in the aspx webpage. Hope this info give you some hint. Thanks
function BatchEditCellValueChanged(sender, args) {
// add chrome check
SaveGrid(sender, args);
throw 'Telerik grid insert/update';
}
=== ASPX code ===
<asp:Content ID="Content1" ContentPlaceHolderID="Main" runat="Server">
<link href="CSS/Styles.css" type="text/css" rel="stylesheet" />
<script type="text/javascript">
function SaveGrid(sender, args) {
var tableView = args.get_tableView();
var batchEditingManager = sender.get_batchEditingManager();
batchEditingManager.saveChanges(tableView);
}
function BatchEditCellValueChanged(sender, args) {
// add chrome check
SaveGrid(sender, args);
throw 'Telerik grid insert/update';
}
function addLineTest(sender, args) {
var grid = $find('<%=dgPersonExp.ClientID%>');
var tableView = grid.get_masterTableView();
var batchManager = grid.get_batchEditingManager();
batchManager.addNewRecord(tableView);
//Default one line in the grid
//var newItem = tableView.get_dataItems()[0];
//var descCell = newItem.get_cell("SALARY");
//batchManager.changeCellValue(descCell, "0");
}
</script>
<asp:Panel ID="panPage3" runat="server">
<table class="FONT1" id="Table9" style="width: 912px" cellspacing="1" cellpadding="1" width="912" border="0">
<tr>
<td bgcolor="#d3d3d3">
<table cellpadding="0" cellspacing="0">
<tr>
<td style="width: 770px;">
<asp:Label ID="Label40" runat="server" Font-Bold="True" ForeColor="Black">Personnel Expenditures</asp:Label>
</td>
<td>
<asp:Button ID="btnExcelPersonnel" runat="server" Font-Bold="True" ForeColor="BLUE"
Font-Size="8pt" Text="Export to Excel" BorderStyle="None" Font-Underline="True" Visible="false"
BackColor="#d3d3d3" Width="132px"></asp:Button>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top">
<table width="1100px" cellpadding="0" cellspacing="0">
<tr>
<td>
<telerik:RadGrid ID="dgPersonExp" runat="server" Width="1100px" AllowPaging="false" AutoGenerateColumns="false" ShowStatusBar="true"
AllowSorting="false" EnableLinqExpressions="false" GridLines="Both" ShowFooter="true" AllowAutomaticInserts="true"
AllowAutomaticDeletes="true">
<ClientSettings>
<Scrolling AllowScroll="false" UseStaticHeaders="true" />
<Selecting AllowRowSelect="true" />
<ClientEvents OnRowDeleted="function(sender, args){SaveGrid(sender, args);}" OnBatchEditCellValueChanged="function(sender, args){BatchEditCellValueChanged(sender, args);}" />
</ClientSettings>
<MasterTableView TableLayout="Fixed" Width="100%" Height="100%" ShowHeadersWhenNoRecords="true" EditMode="Batch" InsertItemDisplay="Bottom"
CommandItemDisplay="Bottom"
DataKeyNames="ID,EMPID,POSITIONID,DATEPAYENDED,HR,DATEPAID,CHKNO,SALARY,FICA,MEDICARE,SF,WC,OTHER,BENEFITS,EXPENDITURE,APPROVED"><%--,TotalHoursWorked,DentalInsurance,VisionInsurance,Retirement"> --%>
<BatchEditingSettings EditType="Row" SaveAllHierarchyLevels="true" OpenEditingEvent="Click" />
<CommandItemSettings AddNewRecordText="Add New Line Item" ShowSaveChangesButton="false" ShowCancelChangesButton="false" />
<SortExpressions>
<telerik:GridSortExpression FieldName="ID" SortOrder="Ascending" />
</SortExpressions>
<Columns>
<telerik:GridBoundColumn HeaderText="ID" UniqueName="ID" DataField="ID" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="0%" Visible="false" />
<telerik:GridTemplateColumn HeaderText="Employee Name" UniqueName="EMPID" DataField="EMPID" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="8%" HeaderStyle-Font-Size="Smaller" FooterText="Total Amount" FooterStyle-HorizontalAlign="Left" FooterStyle-Font-Size="Smaller" ItemStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblEmpName" runat="server" Text='<%# Bind("EmployeeName")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox ID="ddlEmpName" runat="server" DataTextField="DESCR" DataValueField="ID" Width="100%" DropDownAutoWidth="Enabled"></telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Position" UniqueName="POSITIONID" DataField="POSITIONID" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="8%" HeaderStyle-Font-Size="Smaller" ItemStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblPosition" runat="server" Text='<%# Bind("PositionTitle")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<telerik:RadComboBox ID="ddlPosition" runat="server" DataTextField="DESCR" DataValueField="ID" Width="100%" DropDownAutoWidth="Enabled"></telerik:RadComboBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Pay Period <br> Ended" UniqueName="DATEPAYENDED" DataField="DATEPAYENDED" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="8%" HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblDatePayEnded" Text='<%# Eval("DATEPAYENDED", "{0:MM/dd/yyyy}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDatePayEnded" runat="server" MaxLength="10" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Hours <br> Charged" UniqueName="HR" DataField="HR" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" >
<ItemTemplate>
<asp:Label ID="lblHR" Text='<%# Eval("HR", "{0:f2}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtHR" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<%--<telerik:GridTemplateColumn HeaderText="Total Hours <br> Worked" UniqueName="TotalHoursWorked" DataField="TotalHoursWorked" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" >
<ItemTemplate>
<asp:Label ID="lblTotalHoursWorked" Text='<%# Eval("TotalHoursWorked") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtTotalHoursWorked" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>--%>
<telerik:GridTemplateColumn HeaderText="Date Paid" UniqueName="DATEPAID" DataField="DATEPAID" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="8%" HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" >
<ItemTemplate>
<asp:Label ID="lblDatePaid" Text='<%# Eval("DATEPAID", "{0:MM/dd/yyyy}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDatePaid" runat="server" MaxLength="10" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn HeaderText="Check <br> No." UniqueName="CHKNO" DataField="CHKNO" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="6%" HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller"/>
<telerik:GridTemplateColumn HeaderText="Salary <br> Paid" UniqueName="SALARY" DataField="SALARY" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="6%"
HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" Aggregate="Sum" FooterAggregateFormatString="{0:C}"
FooterStyle-HorizontalAlign="Right" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblSalary" Text='<%# Eval("SALARY", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtSalary" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="FICA" UniqueName="FICA" DataField="FICA" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller"
ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" Aggregate="Sum" FooterAggregateFormatString="{0:C}" FooterStyle-HorizontalAlign="Right" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblFICA" Text='<%# Eval("FICA", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtFICA" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Medicare" UniqueName="MEDICARE" DataField="MEDICARE" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller"
ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" Aggregate="Sum" FooterAggregateFormatString="{0:C}" FooterStyle-HorizontalAlign="Right" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblMedicare" Text='<%# Eval("MEDICARE", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtMedicare" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="SUI<BR>&<BR>FUTA" UniqueName="SF" DataField="SF" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="5%" HeaderStyle-Font-Size="Smaller"
ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" Aggregate="Sum" FooterAggregateFormatString="{0:C}" FooterStyle-HorizontalAlign="Right" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblSF" Text='<%# Eval("SF", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtSF" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Workers Comp." UniqueName="WC" DataField="WC" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller"
ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" Aggregate="Sum" FooterAggregateFormatString="{0:C}" FooterStyle-HorizontalAlign="Right" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblWC" Text='<%# Eval("WC", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtWC" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<%--<telerik:GridTemplateColumn HeaderText="Dental Ins." UniqueName="DentalInsurance" DataField="DentalInsurance" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblDentalInsurance" Text='<%# Eval("DentalInsurance", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtDentalInsurance" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Vision Ins." UniqueName="VisionInsurance" DataField="VisionInsurance" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblVisionInsurance" Text='<%# Eval("VisionInsurance", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtVisionInsurance" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Retirement" UniqueName="Retirement" DataField="Retirement" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="5%" HeaderStyle-Font-Size="Smaller" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblRetirement" Text='<%# Eval("Retirement", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtRetirement" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>--%>
<telerik:GridTemplateColumn HeaderText="Pension<BR>Health<BR>Other" UniqueName="OTHER" DataField="OTHER" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller"
ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" Aggregate="Sum" FooterAggregateFormatString="{0:C}" FooterStyle-HorizontalAlign="Right" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblOther" Text='<%# Eval("OTHER", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtOther" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Benefit <BR> Total" UniqueName="BENEFITS" DataField="BENEFITS" ReadOnly="true" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="5%" HeaderStyle-Font-Size="Smaller"
ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" Aggregate="Sum" FooterAggregateFormatString="{0:C}" FooterStyle-HorizontalAlign="Right" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblBenefit" Text='<%# Eval("BENEFITS", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtBenefit" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="This Period Total" UniqueName="EXPENDITURE" DataField="EXPENDITURE" ReadOnly="true" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller"
ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" Aggregate="Sum" FooterAggregateFormatString="{0:C}" FooterStyle-HorizontalAlign="Right" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblExpenditure" Text='<%# Eval("EXPENDITURE", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtExpenditure" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Approved <BR> This <BR> Period" UniqueName="APPROVED" DataField="APPROVED" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%" HeaderStyle-Font-Size="Smaller"
Aggregate="Sum" FooterAggregateFormatString="{0:C}" FooterStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" ItemStyle-Font-Size="Smaller" FooterStyle-Font-Size="Smaller">
<ItemTemplate>
<asp:Label ID="lblApproved" Text='<%# Eval("APPROVED", "{0:C}") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<telerik:RadNumericTextBox ID="txtApproved" runat="server" />
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridButtonColumn UniqueName="DeleteButton" ButtonType="ImageButton" HeaderStyle-Width="5%" CommandName="Delete" ImageUrl="CDBGSkin\Grid\del_up.gif" ItemStyle-HorizontalAlign="Center" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table style="width:732px;" cellpadding="0" cellspacing="0">
<tr hidden="hidden">
<td align="left">
<telerik:RadButton runat="server" ID="btnNewPersonExp" AutoPostBack="false" Text="Add New Line Item" OnClientClicked="function(sender, args){addLine(sender, args, 'ctl00_Main_dgPersonExp');}"></telerik:RadButton>
<%--<telerik:RadButton runat="server" ID="RadButton1" AutoPostBack="false" Text="Add New Line Item" OnClientClicked="function(sender, args){addLine(sender, args, 'ctl00_Main_dgPersonExp');}"></telerik:RadButton>--%>
</td>
<td align="right">
<telerik:RadButton runat="server" ID="btnRefPersonExp" AutoPostBack="false" Text="Refresh"></telerik:RadButton>
</td>
</tr>
</table>
</td>
</tr>
<asp:Panel ID="panPersonnelUpload" runat="server" Visible="false">
<tr>
<td nowrap="nowrap">
<asp:Label ID="Label11" runat="server" Width="299px" Font-Bold="True">Excel Personnel Expenditure Document:</asp:Label><input
class="FONT1" id="inpImgFilePersonnel" title="inpImgFile" style="width: 306px;
height: 19px" type="file" size="43" name="inpImgFile" runat="server" />
<asp:Button ID="btnUploadFilePersonnel" runat="server" Width="90px" Height="20" CssClass="FONT1"
Text="Upload File"></asp:Button>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</asp:Panel>
<tr>
<td style="width: 732px;">
<table cellpadding="0" cellspacing="0">
<tr>
<td style="width: 732px; background-color:#d3d3d3">
<asp:Label ID="Label41" runat="server" Font-Bold="True" ForeColor="Black">Non-Personnel Expenditures</asp:Label>
</td>
<td>
<asp:Button ID="btnExcelNonPersonnel" runat="server" Font-Bold="True" ForeColor="BLUE" Font-Size="8pt"
Text="Export to Excel" BorderStyle="None" Font-Underline="True" BackColor="#d3d3d3" Visible="false"
Width="132px"></asp:Button>
</td>
</tr>
</table>
</td>
</tr>
</asp:Panel>
=== VB code ===
#Region "Page 3"
Public Sub LoadPage3()
If mfdrq.AgencyID = 0 Then
If Not Session("FDRQOBJECT") Is Nothing Then
mfdrq = Session("FDRQOBJECT")
Else
LoadHeader()
End If
End If
panPage1Header.Visible = False
panPage2Header.Visible = False
panPage3Header.Visible = True
panPage4Header.Visible = False
panRequestHeader.Visible = True
panNav.Visible = True
txtformid.Value = 3
panPage1.Visible = False
panPage2.Visible = False
panPage3.Visible = True
panPage4.Visible = False
btnPage1.Enabled = True
btnPage2.Enabled = True
btnPage3.Enabled = False
btnPage4.Enabled = True
btnCancel.Visible = True
btnDelete.Visible = True
btnSave.Visible = True
btnSaveApproved.Visible = True
Try
Dim blnPreparer As Boolean = False
Dim lngPartnerID As Long = 0
If GetFDRQPageLoad(CInt(txtformpkid.Value), txtformid.Value, Deleted, Session("usr_userid"), Session("usr_agencyid"), dr, strErrorDesc) Then
Dim dtPersonExp = New DataTable()
dtPersonExp.Load(dr)
Session("dtPersonExp") = dtPersonExp
dgPersonExp.DataSource = dtPersonExp
dgPersonExp.DataBind()
'dr.NextResult()
Dim dtNonPersonExp = New DataTable()
dtNonPersonExp.Load(dr)
Session("dtNonPersonExp") = dtNonPersonExp
dgNonPersonExp.DataSource = dtNonPersonExp
dgNonPersonExp.DataBind()
'dr.NextResult()
Dim dtCapOutExp = New DataTable()
dtCapOutExp.Load(dr)
Session("dtCapOutExp") = dtCapOutExp
dgCapOutExp.DataSource = dtCapOutExp
dgCapOutExp.DataBind()
Dim lngResults As Long = 0
'dr.NextResult()
If (dr.HasRows = True) Then
lngResults = 1
End If
Dim dtProjAdminCostSupp = New DataTable()
dtProjAdminCostSupp.Load(dr)
Session("dtProjAdminCostSupp") = dtProjAdminCostSupp
dgProjAdminCostSupp.DataSource = dtProjAdminCostSupp
dgProjAdminCostSupp.DataBind()
If lngResults = 1 Then
Dim lngCount As Long = 0
Dim decPercentage As Decimal = 0
Dim decAmount As Decimal = 0
Dim adjPercentage As Decimal = 0
Dim adjCosts As Decimal = 0
For Each lRow As GridDataItem In dgProjAdminCostSupp.Items
If (lngCount = 0) Then
' decPercentage = lRow.Cells(4).Text
decPercentage = If(String.IsNullOrEmpty(lRow.GetDataKeyValue("APPROVED").ToString()), 0, lRow.GetDataKeyValue("APPROVED"))
adjPercentage = If(String.IsNullOrEmpty(lRow.GetDataKeyValue("ADJUSTMENT").ToString()), 0, lRow.GetDataKeyValue("ADJUSTMENT"))
ElseIf (lngCount = 1) Then
decAmount = If(String.IsNullOrEmpty(lRow.GetDataKeyValue("APPROVED").ToString()), 0, lRow.GetDataKeyValue("APPROVED"))
adjCosts = If(String.IsNullOrEmpty(lRow.GetDataKeyValue("ADJUSTMENT").ToString()), 0, lRow.GetDataKeyValue("ADJUSTMENT"))
End If
lngCount += 1
Next
'Below formats the footers
'dgProjAdminCostSupp.MasterTableView.Columns(4).FooterText = FormatCurrency((decPercentage / 100) * decAmount) 'Original
Dim footer As GridFooterItem = TryCast(dgProjAdminCostSupp.MasterTableView.GetItems(GridItemType.Footer)(0), GridFooterItem)
'Approved Total
Dim totalAdjustments As Label = TryCast(footer.FindControl("totalAdjustments"), Label)
totalAdjustments.Text = FormatCurrency((decPercentage / 100) * decAmount)
'Adjustments Total
Dim totalApproved As Label = TryCast(footer.FindControl("totalApproved"), Label)
totalApproved.Text = FormatCurrency((adjPercentage / 100) * adjCosts)
'Below formats the rows
'Format both rows for percentage
'Dim firstRow As GridItem = dgProjAdminCostSupp.MasterTableView.GetItems(GridItemType.Item)(0)
Dim firstRow As GridItem = dgProjAdminCostSupp.MasterTableView.Items(0)
'Dim secondRow As GridItem = dgProjAdminCostSupp.MasterTableView.GetItems(GridItemType.Item)(1)
Dim secondRow As GridItem = dgProjAdminCostSupp.MasterTableView.Items(1)
'First row perecntage items
Dim expPercentItem As Label = TryCast(firstRow.FindControl("lblProjAdmSuppExpenditure"), Label)
expPercentItem.Text = FormatPercent(CInt(expPercentItem.Text) / 100)
Dim adjPercentItem As Label = TryCast(firstRow.FindControl("lblAdjustments"), Label)
adjPercentItem.Text = FormatPercent(CInt(adjPercentItem.Text) / 100)
'Second row cost items
Dim expCostItem As Label = TryCast(secondRow.FindControl("lblProjAdmSuppExpenditure"), Label)
expCostItem.Text = FormatCurrency(expCostItem.Text)
Dim adjCostItem As Label = TryCast(secondRow.FindControl("lblAdjustments"), Label)
adjCostItem.Text = FormatCurrency(adjCostItem.Text)
End If
'dr.NextResult()
Do While dr.Read
If (dr("ROLEID") = 6) Then
blnPreparer = True
End If
Loop
'dr.NextResult()
Do While dr.Read
lngPartnerID = dr("PARTNERID")
Loop
dr.Close()
Else
If Not dr.IsClosed Then
dr.Close()
End If
Session("error") = strErrorDesc
Session("page") = Request.FilePath()
Server.ClearError()
Response.Redirect(Session("errorpage").ToString)
End If
btnSave.Enabled = False
btnDelete.Enabled = False
btnNewCapExp.Enabled = False
dgCapOutExp.MasterTableView.GetColumn("DeleteButton").Visible = False
btnNewNonPerExp.Enabled = False
dgNonPersonExp.MasterTableView.GetColumn("DeleteButton").Visible = False
btnNewPersonExp.Enabled = False
dgPersonExp.MasterTableView.GetColumn("DeleteButton").Visible = False
'dgPersonExp.Bands(0).AllowUpdate = AllowUpdate.No
'dgNonPersonExp.Bands(0).AllowUpdate = AllowUpdate.No
'dgCapOutExp.Bands(0).AllowUpdate = AllowUpdate.No
'dgProjAdminCostSupp.Bands(0).AllowUpdate = AllowUpdate.No
'NO activity reported
If mfdrq.NoActChk Then
Exit Sub
End If
If (blnPreparer = True) Then
Select Case mfdrq.NextActionByID
Case NextActionByID.ToBeSubmitted, NextActionByID.Approval, NextActionByID.Denied
btnSave.Enabled = True
btnDelete.Enabled = True
btnNewCapExp.Enabled = True
dgCapOutExp.MasterTableView.GetColumn("DeleteButton").Visible = True
btnNewNonPerExp.Enabled = True
dgNonPersonExp.MasterTableView.GetColumn("DeleteButton").Visible = True
btnNewPersonExp.Enabled = True
dgPersonExp.MasterTableView.GetColumn("DeleteButton").Visible = True
'dgPersonExp.Bands(0).AllowUpdate = AllowUpdate.Yes
'dgNonPersonExp.Bands(0).AllowUpdate = AllowUpdate.Yes
'dgCapOutExp.Bands(0).AllowUpdate = AllowUpdate.Yes
'dgProjAdminCostSupp.Bands(0).AllowUpdate = AllowUpdate.Yes
For Each col As GridColumn In dgPersonExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = True
Next
For Each col As GridColumn In dgNonPersonExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = True
Next
For Each col As GridColumn In dgCapOutExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = True
Next
End Select
End If
If (mfdrq.NextActionByID >= 10) Then
dgPersonExp.MasterTableView.GetColumn("APPROVED").Visible = True
dgNonPersonExp.MasterTableView.GetColumn("APPROVED").Visible = True
dgCapOutExp.MasterTableView.GetColumn("APPROVED").Visible = True
dgProjAdminCostSupp.MasterTableView.GetColumn("APPROVED").Visible = True
Else
dgPersonExp.MasterTableView.GetColumn("APPROVED").Visible = False
dgNonPersonExp.MasterTableView.GetColumn("APPROVED").Visible = False
dgCapOutExp.MasterTableView.GetColumn("APPROVED").Visible = False
'dgProjAdminCostSupp.MasterTableView.GetColumn("APPROVED").Visible = False
End If
If (mfdrq.NextActionByID = 10 Or mfdrq.NextActionByID = 11) Then
If (lngPartnerID <> 0) Then
For Each col As GridColumn In dgPersonExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = False
Next
For Each col As GridColumn In dgNonPersonExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = False
Next
For Each col As GridColumn In dgCapOutExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = False
Next
For Each col As GridColumn In dgProjAdminCostSupp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = False
Next
btnSaveApproved.Enabled = True
End If
Else
For Each col As GridColumn In dgPersonExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = True
Next
For Each col As GridColumn In dgNonPersonExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = True
Next
For Each col As GridColumn In dgCapOutExp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = True
Next
For Each col As GridColumn In dgProjAdminCostSupp.MasterTableView.Columns
If col.UniqueName = "APPROVED" Then CType(col, GridTemplateColumn).ReadOnly = True
Next
btnSaveApproved.Enabled = False
End If
Dim blnShowSave As Boolean = False
Select Case mfdrq.NextActionByID
Case NextActionByID.ToBeSubmitted, NextActionByID.Denied
panSaveApproved.Visible = False
panSave.Visible = True
If (blnPreparer = True) Then
blnShowSave = True
End If
Case Else
panSaveApproved.Visible = True
panSave.Visible = False
btnSave.Enabled = False
End Select
If (blnShowSave = True) Then
btnSave.Enabled = True
Else
btnSave.Enabled = False
End If
If (mfdrq.NextActionByID = 21) Then
btnSave.Enabled = False
btnSaveApproved.Enabled = False
End If
If btnSaveApproved.Enabled = True Then 'NavBarPerPage3.Enabled = True Or
Dim lngPage2Data As Long = 0
dr = GetFDRQPage2ByID(CInt(txtformpkid.Value))
Do While dr.Read
lngPage2Data = dr("THECOUNT")
Loop
dr.Close()
Dim lngPage3Data As Long = 0
dr = GetFDRQPage3ByID(CInt(txtformpkid.Value))
Do While dr.Read
lngPage3Data = dr("THECOUNT")
Loop
dr.Close()
If lngPage2Data > 0 And lngPage3Data = 0 Then
DisablePage3()
End If
End If
'tcheng_20180711 Added - If the category does not exist in the budget, disable that grid (Except Participating Cities)
If mfdrq.ATC <> 2 Then
Dim dt As DataTable = GetFundingProjectBudgets(mfdrq.ProjectID)
If (From r In dt.AsEnumerable Where r.Field(Of String)("CostCat") = "Personnel" Select r).Count() = 0 Then
btnNewPersonExp.Enabled = False
dgPersonExp.Enabled = False
End If
If (From r In dt.AsEnumerable Where r.Field(Of String)("CostCat") = "Non-Personnel" Select r).Count() = 0 Then
btnNewNonPerExp.Enabled = False
dgNonPersonExp.Enabled = False
End If
If (From r In dt.AsEnumerable Where r.Field(Of String)("CostCat") = "Capital Outlays" Select r).Count() = 0 Then
btnNewCapExp.Enabled = False
dgCapOutExp.Enabled = False
End If
If (From r In dt.AsEnumerable Where r.Field(Of String)("CostCat") = "Indirect Costs" Select r).Count() = 0 Then dgProjAdminCostSupp.Enabled = False
End If
Catch ex As Exception
If Not dr.IsClosed Then
dr.Close()
End If
Session("error") = strErrorDesc
Session("page") = Request.FilePath()
Server.ClearError()
Response.Redirect(Session("errorpage").ToString)
End Try
End Sub
#Region "dgPersonExp"
Private Sub dgPersonExp_NeedDataSource(sender As Object, e As GridNeedDataSourceEventArgs) Handles dgPersonExp.NeedDataSource
dgPersonExp.DataSource = Session("dtPersonExp")
End Sub
Private Sub dgPersonExp_PreRender(sender As Object, e As EventArgs) Handles dgPersonExp.PreRender
Dim ddlEmpName As RadComboBox = dgPersonExp.FindControl(dgPersonExp.MasterTableView.ClientID + "_EMPID").FindControl("ddlEmpName")
ddlEmpName.DataSource = GetFDRQFundingEmployee(txtformpkid.Value)
ddlEmpName.DataBind()
Dim ddlPosition As RadComboBox = dgPersonExp.FindControl(dgPersonExp.MasterTableView.ClientID + "_POSITIONID").FindControl("ddlPosition")
ddlPosition.DataSource = GetFDRQFundingPosition(txtformpkid.Value)
ddlPosition.DataBind()
End Sub
Protected Sub dgPersonExp_BatchEditCommand(sender As Object, e As Telerik.Web.UI.GridBatchEditingEventArgs) Handles dgPersonExp.BatchEditCommand
For Each command As GridBatchEditingCommand In e.Commands
Dim ddlEmpName As RadComboBox = dgPersonExp.FindControl(dgPersonExp.MasterTableView.ClientID + "_EMPID").FindControl("ddlEmpName")
Dim ddlPosition As RadComboBox = dgPersonExp.FindControl(dgPersonExp.MasterTableView.ClientID + "_POSITIONID").FindControl("ddlPosition")
Dim newValues As Hashtable = command.NewValues
Dim oldValues As Hashtable = command.OldValues
Dim dt = TryCast(Session("dtPersonExp"), DataTable)
dt.Columns("EXPENDITURE").AllowDBNull = True
dt.Columns("APPROVED").AllowDBNull = True
Dim decValue As Decimal, dateValue As Date
Dim i As Integer
Select Case command.Type
Case GridBatchEditingCommandType.Insert
Dim newRow As DataRow = dt.NewRow()
newRow.Item("ID") = dt.Rows.Count + 1
newRow.Item("EMPID") = If(newValues("EMPID") Is Nothing, "", newValues("EMPID"))
newRow.Item("EmployeeName") = ddlEmpName.Text
newRow.Item("POSITIONID") = If(newValues("POSITIONID") Is Nothing, "", newValues("POSITIONID"))
newRow.Item("PositionTitle") = ddlPosition.Text
If Not newValues("DATEPAYENDED") Is Nothing AndAlso Date.TryParse(newValues("DATEPAYENDED").ToString(), dateValue) Then
newRow.Item("DATEPAYENDED") = dateValue.ToShortDateString
Else
newRow.Item("DATEPAYENDED") = DBNull.Value
End If
If Not newValues("HR") Is Nothing AndAlso Decimal.TryParse(newValues("HR").ToString(), decValue) Then
newRow.Item("HR") = decValue
Else
newRow.Item("HR") = 0
End If
'If Not newValues("TotalHoursWorked") Is Nothing AndAlso Decimal.TryParse(newValues("TotalHoursWorked").ToString(), decValue) Then
' newRow.Item("TotalHoursWorked") = decValue
'Else
' newRow.Item("TotalHoursWorked") = 0
'End If
If Not newValues("DATEPAID") Is Nothing AndAlso Date.TryParse(newValues("DATEPAID").ToString(), dateValue) Then
newRow.Item("DATEPAID") = dateValue.ToShortDateString
Else
newRow.Item("DATEPAID") = DBNull.Value
End If
newRow.Item("CHKNO") = If(newValues("CHKNO") Is Nothing, "", newValues("CHKNO"))
If Not newValues("SALARY") Is Nothing AndAlso Decimal.TryParse(newValues("SALARY").ToString(), decValue) Then
newRow.Item("SALARY") = decValue
Else
newRow.Item("SALARY") = 0
End If
If Not newValues("FICA") Is Nothing AndAlso Decimal.TryParse(newValues("FICA").ToString(), decValue) Then
newRow.Item("FICA") = decValue
Else
newRow.Item("FICA") = 0
End If
If Not newValues("MEDICARE") Is Nothing AndAlso Decimal.TryParse(newValues("MEDICARE").ToString(), decValue) Then
newRow.Item("MEDICARE") = decValue
Else
newRow.Item("MEDICARE") = 0
End If
'If Not newValues("DentalInsurance") Is Nothing AndAlso Decimal.TryParse(newValues("DentalInsurance").ToString(), decValue) Then
' newRow.Item("DentalInsurance") = decValue
'Else
' newRow.Item("DentalInsurance") = 0
'End If
'If Not newValues("VisionInsurance") Is Nothing AndAlso Decimal.TryParse(newValues("VisionInsurance").ToString(), decValue) Then
' newRow.Item("VisionInsurance") = decValue
'Else
' newRow.Item("VisionInsurance") = 0
'End If
'If Not newValues("Retirement") Is Nothing AndAlso Decimal.TryParse(newValues("Retirement").ToString(), decValue) Then
' newRow.Item("Retirement") = decValue
'Else
' newRow.Item("Retirement") = 0
'End If
If Not newValues("SF") Is Nothing AndAlso Decimal.TryParse(newValues("SF").ToString(), decValue) Then
newRow.Item("SF") = decValue
Else
newRow.Item("SF") = 0
End If
If Not newValues("WC") Is Nothing AndAlso Decimal.TryParse(newValues("WC").ToString(), decValue) Then
newRow.Item("WC") = decValue
Else
newRow.Item("WC") = 0
End If
If Not newValues("OTHER") Is Nothing AndAlso Decimal.TryParse(newValues("OTHER").ToString(), decValue) Then
newRow.Item("OTHER") = decValue
Else
newRow.Item("OTHER") = 0
End If
If Not newValues("BENEFITS") Is Nothing AndAlso Decimal.TryParse(newValues("BENEFITS").ToString(), decValue) Then
newRow.Item("BENEFITS") = decValue
Else
newRow.Item("BENEFITS") = 0
End If
If Not newValues("EXPENDITURE") Is Nothing AndAlso Decimal.TryParse(newValues("EXPENDITURE").ToString(), decValue) Then
newRow.Item("EXPENDITURE") = decValue
Else
newRow.Item("EXPENDITURE") = 0
End If
If newRow.Item("EMPID").ToString.Trim <> "" Or newRow.Item("POSITIONID").ToString.Trim <> "" Then
dt.Rows.InsertAt(newRow, 0)
End If
Case GridBatchEditingCommandType.Delete
For Each row As DataRow In dt.Select("ID='" + oldValues("ID").ToString() + "'")
Row.Delete()
Next
dt.AcceptChanges()
'Reset RowID
i = 1
dt.DefaultView.Sort = "ID ASC"
dt = dt.DefaultView.ToTable()
dt.Columns("ID").ReadOnly = False
For Each row As DataRow In dt.Rows
row.Item("ID") = i
i += 1
Next
dt.AcceptChanges()
Case GridBatchEditingCommandType.Update
If oldValues IsNot Nothing And newValues IsNot Nothing Then
If oldValues.Count > 0 And newValues.Count > 0 Then
Dim curRow = dt.Select("ID='" + oldValues("ID").ToString() + "'").ToList()
If curRow.Count() > 0 Then
End If
For Each row As DataRow In dt.Select("ID='" + oldValues("ID").ToString() + "'")
row.Delete()
Next
For Each row As DataRow In dt.Select("ID='" + newValues("ID").ToString() + "'")
row.Delete()
Next
dt.AcceptChanges()
Dim newRow As DataRow = dt.NewRow()
newRow.Item("ID") = oldValues("ID")
newRow.Item("EMPID") = If(newValues("EMPID") Is Nothing, "", newValues("EMPID"))
newRow.Item("EmployeeName") = ddlEmpName.Text
newRow.Item("POSITIONID") = If(newValues("POSITIONID") Is Nothing, "", newValues("POSITIONID"))
newRow.Item("PositionTitle") = ddlPosition.Text
If Not newValues("DATEPAYENDED") Is Nothing AndAlso Date.TryParse(newValues("DATEPAYENDED").ToString(), dateValue) Then
newRow.Item("DATEPAYENDED") = dateValue.ToShortDateString
Else
newRow.Item("DATEPAYENDED") = DBNull.Value
End If
If Not newValues("HR") Is Nothing AndAlso Decimal.TryParse(newValues("HR").ToString(), decValue) Then
newRow.Item("HR") = decValue
Else
newRow.Item("HR") = 0
End If
'If Not newValues("TotalHoursWorked") Is Nothing AndAlso Decimal.TryParse(newValues("TotalHoursWorked").ToString(), decValue) Then
' newRow.Item("TotalHoursWorked") = decValue
'Else
' newRow.Item("TotalHoursWorked") = 0
'End If
If Not newValues("DATEPAID") Is Nothing AndAlso Date.TryParse(newValues("DATEPAID").ToString(), dateValue) Then
newRow.Item("DATEPAID") = dateValue.ToShortDateString
Else
newRow.Item("DATEPAID") = DBNull.Value
End If
newRow.Item("CHKNO") = If(newValues("CHKNO") Is Nothing, "", newValues("CHKNO"))
If Not newValues("SALARY") Is Nothing AndAlso Decimal.TryParse(newValues("SALARY").ToString(), decValue) Then
newRow.Item("SALARY") = decValue
Else
newRow.Item("SALARY") = DBNull.Value
End If
If Not newValues("FICA") Is Nothing AndAlso Decimal.TryParse(newValues("FICA").ToString(), decValue) Then
newRow.Item("FICA") = decValue
Else
newRow.Item("FICA") = 0
End If
If Not newValues("MEDICARE") Is Nothing AndAlso Decimal.TryParse(newValues("MEDICARE").ToString(), decValue) Then
newRow.Item("MEDICARE") = decValue
Else
newRow.Item("MEDICARE") = 0
End If
'If Not newValues("DentalInsurance") Is Nothing AndAlso Decimal.TryParse(newValues("DentalInsurance").ToString(), decValue) Then
' newRow.Item("DentalInsurance") = decValue
'Else
' newRow.Item("DentalInsurance") = 0
'End If
'If Not newValues("VisionInsurance") Is Nothing AndAlso Decimal.TryParse(newValues("VisionInsurance").ToString(), decValue) Then
' newRow.Item("VisionInsurance") = decValue
'Else
' newRow.Item("VisionInsurance") = 0
'End If
'If Not newValues("Retirement") Is Nothing AndAlso Decimal.TryParse(newValues("Retirement").ToString(), decValue) Then
' newRow.Item("Retirement") = decValue
'Else
' newRow.Item("Retirement") = 0
'End If
If Not newValues("SF") Is Nothing AndAlso Decimal.TryParse(newValues("SF").ToString(), decValue) Then
newRow.Item("SF") = decValue
Else
newRow.Item("SF") = 0
End If
If Not newValues("WC") Is Nothing AndAlso Decimal.TryParse(newValues("WC").ToString(), decValue) Then
newRow.Item("WC") = decValue
Else
newRow.Item("WC") = 0
End If
If Not newValues("OTHER") Is Nothing AndAlso Decimal.TryParse(newValues("OTHER").ToString(), decValue) Then
newRow.Item("OTHER") = decValue
Else
newRow.Item("OTHER") = 0
End If
If Not newValues("BENEFITS") Is Nothing AndAlso Decimal.TryParse(newValues("BENEFITS").ToString(), decValue) Then
newRow.Item("BENEFITS") = decValue
Else
newRow.Item("BENEFITS") = 0
End If
If Not newValues("EXPENDITURE") Is Nothing AndAlso Decimal.TryParse(newValues("EXPENDITURE").ToString(), decValue) Then
newRow.Item("EXPENDITURE") = decValue
Else
newRow.Item("EXPENDITURE") = 0
End If
dt.Rows.InsertAt(newRow, 0)
End If
End If
End Select
Session("dtPersonExp") = dt
dgPersonExp.DataSource = dt
dgPersonExp.Rebind()
dgPersonExp.Focus()
Next
End Sub
#End Region
Hi Steve,
Try making a Test by removing the "throw 'Telerik grid insert/update';" statements from each method. If you would like to log the execution of the script, use console.log("Message").
function BatchEditCellValueChanged(sender, args) {
SaveGrid(sender, args);
//throw 'Telerik grid insert/update'; // remove this line
}
function SaveGrid(sender, args) {
var tableView = args.get_tableView();
var batchEditingManager = sender.get_batchEditingManager();
batchEditingManager.saveChanges(tableView);
//throw 'Telerik grid insert/update'; // remove this line
}
If I place the "throw 'Telerik grid insert/update';" in my sample code, the Grid won't work as expected.
I've tried the same approach from the grid you shared and it works in all major browsers (Internet Explorer, Google Chrome, Microsoft Edge, and Mozilla Firefox). Check the attached solution.
Regards,
Attila Antal
Progress Telerik
Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.