0

次の ColModel 定義で jqGrid を使用しています

colModel: [
        .
        .
        .
        {
            name: 'ReadingTransferTime', index: 'ReadingTransferTime', width: 78, formatter: 'date', formatoptions: { srcformat: 'm/d/Y', newformat: 'm/d/Y' },
            sorttype: 'date', fixed: true, align: 'center'
        },
        .
        .
        .
        {
            name: 'CPAPStatus', index: 'CPAPStatus', sortable: false, align: 'center', formatter: LoadCPAPFollowUpDialog, width: 100, fixed: true,
            cellattr: function (rowId, tv, rawObject, cm, rdata) { return 'style="white-space: normal!important;' }
        },            
        { name: 'CPAPDeliveryReason', hidden: true },
        { name: 'CPAPDeliveredDate', hidden: true },
        { name: 'CPAPDeliveryStatus', hidden: true }
        ],

カスタム フォーマッタ LoadCPAPFollowUpDialog は次のとおりです。

function LoadCPAPFollowUpDialog(cellvalue, options, rowObject) {        
var paramList = JSON.stringify({
    ReadingID: rowObject.ReadingID,
    TransferTime:rowObject.ReadingTransferTime,
    PatientName: rowObject.PatientFullName,
    PAPDeliveredDate: rowObject.CPAPDeliveredDate,
    NonDeliveryReason: rowObject.CPAPDeliveryReason,
    GridID: "HSTCandidatesDtls"
});

return "<img src='../Content/images/icons/edit.gif' title='" + "@VirtuOxAdmin.SleepStudyDetails_Image_CPAPStatus" + "' \
onClick='openDialog(\"SleepStudyDtlsDialog\",\"" + "@VirtuOxAdmin.SleepStudyDetails_Dialog_CPAPStatus" + "\",\"CPAPDelivery\"," + paramList + ",\"500\",\"auto\")'>" + "<span>" + rowObject.CPAPDeliveryStatus + "</span>";

}

列値 ReadingTransferTime & CPAPDeliveredDate のこのフォーマッタでは、datetime オブジェクトの代わりに /Date(1380565800000)/ のような文字列値を取得しています。これは、私のアクション メソッドCPAPDeliveryが間違ったパラメーター値を受け入れるという問題を引き起こしています。この問題を解決するにはどうすればよいですか?

ここから1つのソリューションを取得 し、paramList jsonオブジェクトを次のように形成しました

var paramList = JSON.stringify({
    ReadingID: rowObject.ReadingID,
    TransferTime:new Date(rowObject.ReadingTransferTime.match(/\d+/)[0]*1),
    PatientName: rowObject.PatientFullName,
    PAPDeliveredDate: (rowObject.CPAPDeliveredDate!=null? new Date(rowObject.CPAPDeliveredDate.match(/\d+/)[0]*1):null),
    NonDeliveryReason: rowObject.CPAPDeliveryReason,
    GridID: "HSTCandidatesDtls"
});

述べられた問題を解決するこの正しい方法はありますか?またはjqGridには、それに対処するための機能が組み込まれています。

4

1 に答える 1

0

これを試して、

 string jsonDate = "/Date(1380565800000)/";
 jsonDate = jsonDate.Replace("/Date(", string.Empty); 
 jsonDate = jsonDate.Replace(")/", string.Empty);

 var date = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddMilliseconds(long.Parse(jsonDate));
 date = date.AddDays(1);

お役に立てれば。

于 2013-10-10T09:40:35.000 に答える