2
<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 に変換しています。しかし、店では、これら2つのフィールドで常に「未定義」として値を取得しています。しかし、日時からデータ型を変更すると? モデル内の DateTime に、ストア内のすべての値を取得しています。

null許容の日時値をストアで取得するのを手伝ってくれる人はいますか?

私は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 列は常に空です

4

2 に答える 2

2

.DateFormatのプロパティを設定する必要があると思います<ext:RecordField>

<ext:RecordField Name="lastChange" Type="Date" DateFormat="M$" />

.DateFormat="M$" を設定すると、"/Date(123...)/"値が JavaScript の Date オブジェクトに自動的に解析されます。

お役に立てれば。

于 2012-04-18T15:45:23.907 に答える
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>

次に、ヌル可能な日時フィールド値をストアに取得しています。

それがあなたにも役立つことを願っています

ありがとう

于 2012-04-18T10:47:30.113 に答える