2

初めてページを開くと、結果は正常に表示されますが、フィルタリングや列の並べ替えなどを使用すると、ajax メソッドは正しい要素を正常に返し、json 形式は正しく見えますが、グリッドはコンテンツを更新しません。次の方法でデータテーブルを初期化しました。

$('#myDataTable').dataTable({
    "sAjaxSource": '@Url.Action("_Index")',
    "bServerSide": true,
    "aoColumns": [
                    { "sName": "Konu" },
                    { "sName": "Şikayet" },
                    { "sName": "Kullanıcı Adı" },
                    { "sName": "Müşteri Adı" },
                    { "sName": "Müşteri Soyadı" },
                    { "sName": "Şirket Adı" },
                    { "sName": "Cevaplandı" },
                    {
                        "sName": "Cevap Ver",
                        "bSearchable": false,
                        "bSortable": false,
                        "fnRender": function (oObj) {
                            return '<a href='+'@Url.Action("Edit")' + '/' +  
                                oObj.aData[7] + '>Cevap Ver</a>';
                        }
                    }
                ]
});

そしてサーバーサイドで:

public ActionResult _Index(jQueryDataTableParamModel table)
{
    var feedbacksList = (List<FeedbackAjaxVM>)AppService.QueryInfo("Admin", "GetFeedbackAjaxList", table);

    IEnumerable<string[]> feedbacks = from c in feedbacksList
                 select new string[] { 
                     c.Subject, 
                     c.Text, 
                     c.Username, 
                     c.CustomerName, 
                     c.CustomerSurname, 
                     c.CustomerFirmname, 
                     c.Response, 
                     c.Id.ToString() 
                 };

    return Json(new
   {
        sEcho = "1",
        iTotalRecords = feedbacksList.FirstOrDefault() != null ? feedbacksList.FirstOrDefault().TotalRecords : 0,
        iTotalDisplayRecords = table.iDisplayLength,
        aaData = feedbacks
    },JsonRequestBehavior.AllowGet);
}

私の問題はクライアント側のコードに関するものだと思いますが、それを理解できませんでした。

4

1 に答える 1