Jun 02, 2023, 7:55 AM
When using ext:DateField to submit to CS code in version 5.3.0, the time will be automatically reduced by 8 hours.
Our time zone is China time zone.When using ext:DateField to submit DateTime(such as 2023-05-30 15:00) to CS code in version 5.3.0,then the DateTime in cs Code is 2023-05-30 7:00, the time will be automatically reduced by 8 hours. ? The previous 4.8.3 version did not have this issue!
<%@ Page Language="C#" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>????</title>
<link href="/resources/css/examples.css" rel="stylesheet" />
<script>
var ActionFormDestroy = function () {
if (App.GridGetSimple.getStore().getCount() > 0) {
App.btnInquiry3.fireEvent("click");
}
};
//????From-To???
var onKeyUp = function () {
var me = this,
v = me.getValue(),
field;
if (me.startDateField) {
field = Ext.getCmp(me.startDateField);
field.setMaxValue(v);
me.dateRangeMax = v;
} else if (me.endDateField) {
field = Ext.getCmp(me.endDateField);
field.setMinValue(v);
me.dateRangeMin = v;
}
field.validate();
};
var onSelectionChange = function (grid, selection) {
var status = App.Status,
message = '??',
firstRowIndex,
firstColumnIndex,
lastRowIndex,
lastColumnIndex;
if (!selection) {
message = 'No selection';
} else if (selection.isCells) {
firstRowIndex = selection.getFirstRowIndex();
firstColumnIndex = selection.getFirstColumnIndex();
lastRowIndex = selection.getLastRowIndex();
lastColumnIndex = selection.getLastColumnIndex();
message = 'Selected cells: ' + (lastColumnIndex - firstColumnIndex + 1) + 'x' + (lastRowIndex - firstRowIndex + 1) +
' at (' + firstColumnIndex + ',' + firstRowIndex + ')';
} else if (selection.isRows) {
message = 'Selected rows: ' + selection.getCount();
} else if (selection.isColumns) {
message = 'Selected columns: ' + selection.getCount();
}
status.update(message);
};
var toggleRowSelect = function (button, pressed) {
App.SpreadsheetSelectionModel1.setRowSelect(pressed);
};
var toggleCellSelect = function (button, pressed) {
App.SpreadsheetSelectionModel1.setCellSelect(pressed); App.SpreadsheetSelectionModel1.setColumnSelect(pressed);
};
var toggleColumnSelect = function (button, pressed) {
App.SpreadsheetSelectionModel1.setColumnSelect(pressed);
};
</script>
<script src="../../../../scripts/custom_behaviour.js"></script>
<script>
var getCompanyValue = function () {
var value = this.getComponent(1).getValue();
return (Ext.isEmpty(value) ? "" : this.getComponent(0).text) + value;
};
var getSizeValue = function () {
var text = [];
this.menu.items.each(function (item) {
if (item.checked) {
text.push(item.text);
}
});
if (text.length == 0) {
return "";
} else {
return "any " + text.join(",");
}
};
var onItemCheck = function (menuItem) {
var checked = false,
button = menuItem.up('button');
menuItem.parentMenu.items.each(function (item) {
if (item.checked) {
checked = true;
return false;
}
});
if (checked) {
button.setText("[Filtered]");
} else {
button.setText("[No Filter]");
}
menuItem.up('grid').filterHeader.onFieldChange(button);
};
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:Viewport runat="server" Layout="fit">
<Items>
<ext:GridPanel ID="GridGetSimple" runat="server" AutoScroll="true" ColumnLines="true">
<Store>
<ext:Store runat="server" AutoLoad="false" PageSize="2000">
<Proxy>
<ext:AjaxProxy Url="/Inspection/Sample/GetSample/" Json="true">
<Reader>
<ext:JsonReader RootProperty="data" />
</Reader>
</ext:AjaxProxy>
</Proxy>
<Model>
<ext:Model runat="server" IDProperty="SubSampleID">
<Fields>
<ext:ModelField Name="SubSampleID" />
<ext:ModelField Name="Task_CheckItemID" />
<ext:ModelField Name="TaskID" />
<ext:ModelField Name="ReportNo" />
<ext:ModelField Name="SampleSource" />
<ext:ModelField Name="CunstomSampleNo" />
<ext:ModelField Name="CunstomSampleName" />
<ext:ModelField Name="ConcreteMethod" />
<ext:ModelField Name="GetSampleDate" Type="Date" />
<ext:ModelField Name="PlanGetSampleDate" Type="Date" />
<ext:ModelField Name="HandoverSampleDate" Type="Date" />
<ext:ModelField Name="DeadlineCompletionTime" Type="Date" />
<ext:ModelField Name="HandoverSampleUser" />
<ext:ModelField Name="SeparateSampleUser" />
<ext:ModelField Name="SampleType" />
<ext:ModelField Name="Num" />
<ext:ModelField Name="SaveMethod" />
<ext:ModelField Name="ItemID" />
<ext:ModelField Name="CheckMethod" />
<ext:ModelField Name="CheckItemName" />
<ext:ModelField Name="IntactOrNot" />
<ext:ModelField Name="Amount" />
<ext:ModelField Name="Unit" />
<ext:ModelField Name="StandardVolume" />
<ext:ModelField Name="ReferenceVolume" />
<ext:ModelField Name="SamplingVolume" />
<ext:ModelField Name="StatusDesc" />
<ext:ModelField Name="Remark" />
<ext:ModelField Name="IsSamplesTBT" />
<ext:ModelField Name="CreateDate" Type="Date" />
<ext:ModelField Name="Creater" />
<ext:ModelField Name="PointLocation" />
<ext:ModelField Name="PeriodNameID" />
</Fields>
</ext:Model>
</Model>
<Sorters>
<ext:DataSorter Property="ReportNo" Direction="ASC" />
</Sorters>
<Parameters>
<ext:StoreParameter Name="sDate" Value="#{startDate}.getValue()" Mode="Raw" />
<ext:StoreParameter Name="eDate" Value="#{endDate}.getValue()" Mode="Raw" />
<ext:StoreParameter Name="ReportNo" Value="#{ReportNo}.getValue()" Mode="Raw" />
</Parameters>
</ext:Store>
</Store>
<ColumnModel>
<Columns>
<ext:RowNumbererColumn runat="server" Width="55" />
<ext:Column runat="server" Text="???" Width="110" DataIndex="ReportNo" Locked="true">
<Editor>
<ext:TextField runat="server">
</ext:TextField>
</Editor>
</ext:Column>
<ext:DateColumn runat="server" Text="????" Width="140" DataIndex="GetSampleDate" Format="yyyy-MM-dd H:i" SubmitFormat="yyyy-MM-dd H:i">
<Editor>
<ext:DateField runat="server" Format="yyyy-MM-dd H:i" SubmitValue="true" SubmitFormat="yyyy-MM-dd H:i">
</ext:DateField>
</Editor>
</ext:DateColumn>
<ext:DateColumn runat="server" Text="??????" Width="140" DataIndex="PlanGetSampleDate" Format="yyyy-MM-dd H:i" SubmitFormat="yyyy-MM-dd HH:mm .SSS'Z'" >
<Editor>
<ext:DateField runat="server" Format="yyyy-MM-dd H:i" SubmitValue="true" SubmitFormat="yyyy-MM-dd H:i">
</ext:DateField>
</Editor>
</ext:DateColumn>
<ext:DateColumn runat="server" Text="??????" Width="140" DataIndex="HandoverSampleDate" Format="yyyy-MM-dd H:i" SubmitFormat="yyyy-MM-dd H:i">
<Editor>
<ext:DateField runat="server" Format="yyyy-MM-dd H:i:s" SubmitValue="true" SubmitFormat="yyyy-MM-dd H:i">
</ext:DateField>
</Editor>
</ext:DateColumn>
<ext:Column runat="server" Text="SubSampleID" DataIndex="SubSampleID" Hidden="true">
</ext:Column>
<ext:DateColumn runat="server" Text="?????????" Format="yyyy-MM-dd H:i" Width="160" DataIndex="DeadlineCompletionTime">
</ext:DateColumn>
<ext:DateColumn runat="server" Text="????" Width="120" DataIndex="CreateDate" Hidden="true" Format="yyyy-MM-dd H:i" />
<ext:Column runat="server" Text="???" Width="100" DataIndex="Creater" Hidden="true" />
<ext:Column runat="server" Text="ItemID" Width="100" DataIndex="ItemID" Hidden="true">
<%--<Editor>
<ext:TextField runat="server">
</ext:TextField>
</Editor>--%>
</ext:Column>
</Columns>
</ColumnModel>
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:FieldSet runat="server" Region="North" Height="95" StyleSpec="margin-top: 10px"
Layout="AnchorLayout" Collapsed="false" DefaultAnchor="100%">
<Defaults>
<ext:Parameter Name="HideEmptyLabel" Value="false" Mode="Raw" />
</Defaults>
<Items>
<ext:Container runat="server" Layout="HBoxLayout" MarginSpec="0 0 5 0">
<Items>
<ext:DateField ID="startDate" runat="server" Vtype="daterange" FieldLabel="????" StyleSpec="margin-top: 10px"
LabelAlign="Right" AnchorHorizontal="100%" EnableKeyEvents="true" LabelWidth="70" SelectedDate="<%# DateTime.Now.AddDays(0) %>" AutoDataBind="true" Editable="false"
Width="200" Format="yyyy-MM-dd">
<CustomConfig>
<ext:ConfigItem Name="endDateField" Value="endDate" Mode="Value" />
</CustomConfig>
<Listeners>
<KeyUp Fn="onKeyUp" />
</Listeners>
</ext:DateField>
<ext:DateField ID="endDate" runat="server" Vtype="daterange" FieldLabel="????" AnchorHorizontal="100%" SelectedDate="<%# DateTime.Now %>" AutoDataBind="true" Editable="false"
LabelAlign="Right" EnableKeyEvents="true" LabelWidth="70" Width="200" Format="yyyy-MM-dd" StyleSpec="margin-top: 10px">
<CustomConfig>
<ext:ConfigItem Name="startDateField" Value="startDate" Mode="Value" />
</CustomConfig>
<Listeners>
<KeyUp Fn="onKeyUp" />
</Listeners>
</ext:DateField>
<ext:TextField ID="CunstomSampleNo" FieldLabel="????" runat="server" LabelWidth="70" Mode="Value" StyleSpec="margin-top: 10px"
LabelAlign="Right" Width="260">
<Listeners>
<Change Handler="this.setValue(Ext.util.Format.uppercase(this.getValue()))" />
</Listeners>
</ext:TextField>
<ext:ToolbarFill runat="server" StyleSpec="margin-top: 10px" />
</Items>
</ext:Container>
<ext:Container runat="server" Layout="HBoxLayout" MarginSpec="0 0 5 0">
<Items>
<ext:TextField ID="ReportNo" FieldLabel="???" runat="server" LabelWidth="70" Mode="Value"
LabelAlign="Right" Width="200">
<Listeners>
<Change Handler="this.setValue(Ext.util.Format.uppercase(this.getValue()))" />
</Listeners>
</ext:TextField>
<ext:TextField ID="CunstomSampleName" FieldLabel="????" runat="server" LabelWidth="70" Mode="Value"
LabelAlign="Right" Width="200">
</ext:TextField>
<ext:TextField ID="CheckItemName" FieldLabel="????" runat="server" LabelWidth="70" Mode="Value"
LabelAlign="Right" Width="260">
</ext:TextField>
<ext:TextField ID="CheckMethod" FieldLabel="????" runat="server" LabelWidth="70" Mode="Value"
LabelAlign="Right" Width="200">
</ext:TextField>
<ext:Button ID="btnInquiry3" runat="server" Text="??" Icon="Magnifier" Width="100" MarginSpec="0 10 10 10">
<Listeners>
<Click Handler="#{GridGetSimple}.getStore().load({ params: {ReportNo:#{ReportNo}.getValue(),CunstomSampleNo:#{CunstomSampleNo}.value,CunstomSampleName:#{CunstomSampleName}.value,
sDate:#{startDate}.value,eDate:#{endDate}.value,CheckMethod:#{CheckMethod}.value,CheckItemName:#{CheckItemName}.value} });" />
</Listeners>
</ext:Button>
<ext:Button ID="Button13" runat="server" Text="??" Icon="Disk" MarginSpec="0 10 10 0" Width="120">
<DirectEvents>
<Click Url="/Inspection/Sample/SaveSubSample/" Timeout="200000"
Success="Ext.net.Notification.show({
iconCls : 'icon-information',
pinEvent : 'click',
html : '?????',
title : '??'
});
#{GridGetSimple}.getStore().reload();
#{btnInquiry3}.fireEvent('click');
"
Failure=" Ext.Msg.alert('????', result.errorMessage);
Ext.net.Notification.show({
iconCls : 'icon-information',
pinEvent : 'click',
html : '?????????????????????????????????',
title : '??'
}); "
>
<Confirmation Title="??" Message="??????" ConfirmRequest="true">
</Confirmation>
<EventMask ShowMask="true" />
<ExtraParams>
<ext:Parameter Name="data" Value="#{GridGetSimple}.store.getChangedData()" Mode="Raw"
Encode="true" />
<%-- <ext:Parameter Name="ID2" Value='<%# ViewData["OrderID"] %>' AutoDataBind="true" Mode="Value"/>--%>
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
</Items>
</ext:Container>
</Items>
</ext:FieldSet>
<ext:Component ID="Status" runat="server" />
<ext:ToolbarFill runat="server" />
</Items>
</ext:Toolbar>
</TopBar>
<SelectionModel>
<ext:SpreadsheetSelectionModel ID="SpreadsheetSelectionModel1"
runat="server"
ColumnSelect="true"
CheckboxSelect="true"
PruneRemoved="true"
Extensible="Y" />
</SelectionModel>
<Listeners>
<SelectionChange Fn="onSelectionChange" />
</Listeners>
<BottomBar>
<ext:PagingToolbar runat="server">
<Items>
<ext:Label runat="server" Text="Page size:" />
<ext:ToolbarSpacer runat="server" Width="10" />
<ext:ComboBox runat="server" Width="80">
<Items>
<ext:ListItem Text="300" />
<ext:ListItem Text="500" />
<ext:ListItem Text="1000" />
<ext:ListItem Text="2000" />
<ext:ListItem Text="5000" />
<ext:ListItem Text="10000" />
<ext:ListItem Text="15000" />
</Items>
<SelectedItems>
<ext:ListItem Value="2000" />
</SelectedItems>
<Listeners>
<Select Handler="#{GridGetSimple}.store.pageSize = parseInt(this.getValue()); #{GridGetSimple}.store.reload();#{btnInquiry3}.fireEvent('click');" />
</Listeners>
</ext:ComboBox>
</Items>
<Plugins>
<ext:ProgressBarPager runat="server" />
</Plugins>
</ext:PagingToolbar>
</BottomBar>
<Plugins>
<ext:FilterHeader runat="server" />
<ext:CellEditing runat="server" ClicksToEdit="2" />
<ext:Clipboard runat="server" />
<ext:SelectionReplicator runat="server" />
</Plugins>
<View>
<ext:GridView runat="server" StripeRows="true" LoadMask="true" ShadowMode="Frame">
</ext:GridView>
</View>
<%-- <Features>
<ext:Grouping runat="server" HideGroupedHeader="true" GroupHeaderTplString=' {name} (???{[values.rows.length]})'
StartCollapsed="false">
</ext:Grouping>
</Features>--%>
</ext:GridPanel>
</Items>
</ext:Viewport>
</form>
</body>
</html>
public ActionResult SaveSubSample(StoreDataHandler handler)
{
try
{
string ReportNo = string.Empty;
string Area = this.getArea();
if (handler.JsonData != "{}")
{
bool isTrue = false;
ChangeRecords<SubSample> EWarehouse = handler.BatchObjectData<SubSample>();
List<WaterBaseCombine> waterBaseCombines = new List<WaterBaseCombine>();
foreach (SubSample created in EWarehouse.Created)
{
created.SubSampleID = Guid.NewGuid().ToString();
if (string.IsNullOrEmpty(created.SeparateSampleUser))
{
created.SeparateSampleUser = this.getCurrentUserName();
}
if (string.IsNullOrEmpty(created.IsSamplesTBT))
{
created.IsSamplesTBT = "?";
}
created.Creater = this.getCurrentUserName();
created.CreateDate = DateTime.Now;
GK.SubSample.Add(created);
isTrue = true;
}
foreach (SubSample updated in EWarehouse.Updated)
{
var item1 = GK.SubSample.Where(x => x.SubSampleID == updated.SubSampleID).FirstOrDefault();
if (item1 != null)
{
if (updated.HandoverSampleDate != null)
{
var CheckPeriodID = GK.Task.Where(x => x.ID == updated.TaskID).FirstOrDefault().CheckPeriodID;
if (CheckPeriodID != null)
{
var DeadlineCompletionTime = ReturnCheckPeriod(Convert.ToDateTime(updated.HandoverSampleDate), CheckPeriodID).ConfirmPlanTime;
item1.DeadlineCompletionTime = DeadlineCompletionTime;
}
}
ReportNo = updated.ReportNo.Substring(0, 9);
item1.SampleSource = updated.SampleSource;
item1.SampleType = updated.SampleType;
item1.Amount = updated.Amount;
item1.PointLocation = updated.PointLocation;
item1.CheckMethod = updated.CheckMethod;//StdNo;//
item1.ConcreteMethod = updated.ConcreteMethod;
item1.CunstomSampleName = updated.CunstomSampleName;
item1.CunstomSampleNo = updated.CunstomSampleNo;
item1.GetSampleDate = updated.GetSampleDate;
item1.PlanGetSampleDate = updated.PlanGetSampleDate;//the view the time is 2023-05-30 7:00 ,the Time will be change 2023-05-30 7:00//
item1.IntactOrNot = updated.IntactOrNot;
item1.Num = updated.Num;
item1.Task_CheckItemID = updated.Task_CheckItemID;
item1.CheckItemName = updated.CheckItemName;
item1.IsSamplesTBT = updated.IsSamplesTBT;
item1.ReferenceVolume = updated.ReferenceVolume;
item1.Remark = updated.Remark;
item1.ReportNo = updated.ReportNo;
item1.SamplingVolume = updated.SamplingVolume;
item1.SaveMethod = updated.SaveMethod;
item1.SeparateSampleUser = updated.SeparateSampleUser;
item1.StandardVolume = updated.StandardVolume;
item1.StatusDesc = updated.StatusDesc;
item1.Unit = updated.Unit;
item1.Updater = this.getCurrentUserName();
item1.UpdaterTime = DateTime.Now;
item1.HandoverSampleDate = updated.HandoverSampleDate; //the view the time is 2023-05-30 7:00 ,the Time will be change 2023-05-30 7:00//
item1.HandoverSampleUser = updated.HandoverSampleUser;
item1.PointLocation = updated.PointLocation;
item1.ItemID = updated.ItemID;
isTrue = true;
}
}
foreach (SubSample deleted in EWarehouse.Deleted)
{
var query1 = GK.SubSample.Where(x => x.SubSampleID == deleted.SubSampleID).FirstOrDefault();
if (query1 != null)
{
GK.SubSample.Remove(query1);
}
var query2 = GK.WaterBaseCombine.Where(x => x.SubSampleID.ToString() == deleted.SubSampleID).FirstOrDefault();
if (query2 != null)
{
GK.WaterBaseCombine.Remove(query2);
}
isTrue = true;
}
if (isTrue)
GK.SaveChanges();
}
return this.Direct();
}
catch (Exception ex)
{
return this.FormPanel(ex.Message);
}
}
Last edited by lixiping; Jun 02, 2023 at 8:22 AM.