2016-08-08 21 views
0

列の1つが日付列である動的JQGridがあります。 URLと日付を持つフィードからデータを取得します。日付とハイパーリンクがNAN/NAN/NANと表示されるようにJqGrid列モーダルを表示

"日付列"の列モデルを作成し、日付とハイパーリンクを表示する必要があります。しかし残念ながら、データはNAN/NAN/NANとして表示されます(これは、文字列全体を "20/8/2016"ではなく、日付として<a>...</a>と扱っている可能性があります)。どの人がNANではなく正しいテキストで日付をここに表示することができますか?

注:私も作るべき必ず日付のソートが作業ある

サンプルコードスニペット維持されていること - がある場合 -を働いていないありなしアンカータグ & をa アンカータグ。ただし、アンカータグとは無関係に、これは常に列のモーダルがテキスト型である場合に機能します。つまり、これは日付列でのみ発生し、他の列では発生しません。

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/base/jquery-ui.css" rel="stylesheet" /> 
    <link href="http://trirand.com/blog/jqgrid/themes/ui.jqgrid.css" rel="stylesheet" /> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script src="http://trirand.com/blog/jqgrid/js/jquery.jqGrid.min.js"></script> 
    <script src="http://trirand.com/blog/jqgrid/js/i18n/grid.locale-en.js"></script> 
    <script type="text/javascript">   
     $(document).ready(function() { 

      var data = [{ 'Date': "<a href=https://google.com target=_blank style=text-decoration:underline;>20/8/2016</a>" }, 
       { 'Date': "<a href=https://google.com target=_blank style=text-decoration:underline;>21/8/2016</a>" }, 
       { 'Date': "<a href=https://google.com target=_blank style=text-decoration:underline;>22/8/2016</a>" }, 
       { 'Date': "2016-08-09T06:11:14.907Z" }, { 'Date': "2016-08-10T06:11:14.907Z" } 
      ] 
      $("#grid").jqGrid({ 
       datatype: 'jsonstring', 
       datastr: data, 
       colNames: ["Date"], 
       colModel: [{ name: 'Date', sorttype: 'date', formatter: 'date', formatoptions: {newformat:'n/j/Y'} }] 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <table id="grid"></table> 
</body> 
</html> 

答えて

0

使用afterinsertrow jqgrid

var data = [{ 'Date': "20/8/2016" }, 
     { 'Date': "20/8/2016" }, 
     { 'Date': "20/8/2016" }, 
     { 'Date': "2016-08-09T06:11:14.907Z" }, 
     { 'Date': "2016-08-10T06:11:14.907Z" } 
] 
$("#grid").jqGrid({ 
    datatype: 'jsonstring', 
    datastr: data, 
    colNames: ["Date"], 
    colModel: [{ name: 'Date', sorttype: 'date', formatter: 'date', formatoptions: {newformat:'n/j/Y'} }], 
    **afterInsertRow : function(rowid, aData){ 
     if(rowid == 1){ 
      $("#grid").jqGrid('setCell' ,rowid, 'Date', "<a href=https://google.com target=_blank style=text-decoration:underline;>"+aData.Date+"</a>", {}); 
     } 
    }** 
}); 
+0

にはより一般的な方法があります。 if条件を削除すると、これはすべてのセルへのハイパーリンクの追加を開始します。私は、その日付の列とURLを持っている場合、if条件をtrueにする必要があると思います。どのようなタイプの列であるかを識別する方法はありますか?これにはハイパーリンクがありますか? –

0
colModel: [{ name: 'Date', sorttype: 'date', 
      formatter:function(cellvalue, options, rowObject)    { 
       var dt=new Date(cellvalue); 
       if(dt=='Invalid Date')return cellvalue;//chrome 
       var y=dt.getFullYear(); 
       var m=dt.getMonth()+1<10?'0'+(dt.getMonth()+1):dt.getMonth()+1; 
       var d=dt.getDate()<10:'0'+dt.getDate():dt.getDate(); 
       return y+'-'+m+'-'+d; 
      } 
       }] 
+0

これは、表示する必要のある日付のフォーマットを駄目にするため、これを考慮することはできません。並べ替えも機能していない –

+1

リストを正しくソートするには、項目の形式が同じでなければなりません – lx1412

+0

解決策は私には役立ちますが、ISOでフォーマットを表示していますが、 n/j/Y 'である。並べ替えが正しく機能していない –

関連する問題