2012-04-17 64 views
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。但是在店裏,我總是會在這兩個領域獲得'未定義'的價值。但是,如果我從Datetime更改數據類型?到DateTime的模型中,我得到了所有的商店價值。可空日期時間字段未在商店中呈現(Ext.Net)

任何一個可以幫助我在商店中獲得可空的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

請發佈您的JS代碼,以便我們可以看到它有什麼問題 – sha 2012-04-17 12:15:32

+0

嗨沙謝謝您的回覆。 「〜/ Samples/OpenEdit/GetSampleList」是一個將Model轉換成StoreResult並返回存儲的控制器函數。我擁有此StoreResult中的所有值。但是當我試圖在JS中使用這個商店時,我在日期字段中獲得'undefined'值。但是,如果我從DateTime更改日期字段的數據類型?到日期時間在模型中它完美的工作,我會得到JS中的所有值。我認爲問題在於DateTime?數據類型 – san 2012-04-17 12:41:26

+0

請發佈ExtJs代碼不起作用 – sha 2012-04-17 12:47:23

回答

2

我認爲你需要配置<ext:RecordField>.DateFormat財產。

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

設置.DateFormat = 「M $」 將自動解析"/Date(123...)/"值轉換成一個JavaScript Date對象。

希望這會有所幫助。

+0

是的...它的工作原理 – san 2012-04-19 05:50:58

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字段的值。

希望這將有助於你還

感謝