<ext:Store ID="StoreSample" runat="server" RemotePaging="true" RemoteSort="true" AutoLoad="true"
ShowWarningOnFailure="false" >
<Proxy>
<ext:HttpProxy Url="~/Samples/OpenEdit/GetSampleList" Json="true">
</ext:HttpProxy>
</Proxy>
<Reader>
<ext:JsonReader IDProperty="Id" Root="data">
<Fields>
<ext:RecordField Name="Id" Type="Int">
</ext:RecordField>
<ext:RecordField Name="SampleDescription" Mapping="Description">
</ext:RecordField>
<ext:RecordField Name="SampleStartDate" Mapping="StartDate" Type="Date">
</ext:RecordField>
<ext:RecordField Name="SampleEndDate" Mapping="EndDate" Type="Date" >
</ext:RecordField>
</Fields>
</ext:JsonReader>
</ext:Store>
在此商店中,SampleStartDate和SampleEndDate字段在模型中的类型为Nullabe Datetime(Datetime?)。在控制器中,我获得了每个字段的值,我将其转换为函数GetSampleList中的StoreResult。但在商店中,我总是在这两个字段中获得“未定义”的值。但是,如果我从Datetime更改数据类型? to DateTime在模型中我得到了商店中的所有值。
任何人都可以帮我在商店中获取可以为空的日期时间值吗?
我在GridPanel中使用这个商店
<Sample:GridPanel ID="GridPanelSample" runat="server" StoreID="StoreSample" Header="false"
AnchorHorizontal="right" AnchorVertical="96%" StandardPager="true" MonitorResize="true" TabIndex="15">
<TopBar>
</TopBar>
<ColumnModel>
<Columns>
<ext:Column runat="server" ColumnID="SampleDescription" Header="Description"
DataIndex="SampleDescription">
</ext:Column>
<ext:DateColumn runat="server" ColumnID="SampleStartDate" Header="StartDate"
DataIndex="SampleStartDate" Format="d MMM Y">
</ext:DateColumn>
<ext:DateColumn runat="server" ColumnID="SampleEndDate" Header="EndDate"
DataIndex="SampleEndDate" Format="d MMM Y">
</ext:DateColumn>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true"
MoveEditorOnEnter="true">
</ext:RowSelectionModel>
</SelectionModel>
<View>
<ext:LockingGridView runat="server" ID="gridview1" />
</View>
<Listeners>
<ViewReady Handler="openEdit.setOpenEditGridColumnWidths();"></ViewReady>
</Listeners>
</Sample:GridPanel>
但SampleStartDate和SampleEndDate列始终为空
答案 0 :(得分:2)
我认为您需要配置.DateFormat
的{{1}}属性。
示例强>
<ext:RecordField>
设置.DateFormat =“M $”会自动将<ext:RecordField Name="lastChange" Type="Date" DateFormat="M$" />
值解析为JavaScript Date对象。
希望这有帮助。
答案 1 :(得分:0)
最后我找到了解决方案。
这是因为我没有隐藏日期类型。它总是返回Microsoft AJAX序列化日期(例如“/ Date(1313467512730 + 0530)/”)。这个日期我需要转换为“2011-08- 15T00:00:00:000”。为此,我使用了转换处理程序。
代码就像
<ext:RecordField Name="SampleStartDate" Mapping="StartDate" Type="Date">
<Convert Handler="return new Date(parseInt(value.substr(6)))" />
</ext:RecordField>
然后我在商店中获得可以为空的datetime字段值。
希望它也会帮助你
由于