web-dev-qa-db-ja.com

jquery datatables Ajax-Error / http://datatables.net/tn/7

以下の私の問題を見てください:

私はMVC-Web-Applikationでjqueryデータテーブルを使用しています。 8列のみを表示すると、すべて正常に動作します。しかし、もう1列追加すると、ajax-error-messageが表示されます。タイトルを参照してください。

8つの列が正常に機能するため、コントローラーは正常に動作します。ここに私のビューのコード:

<script type="text/javascript">
    $(document).ready(function () {
        var table = $('#example').DataTable({
            "processing": true,
            "serverSide": true,
            "ajax": "@Url.Action("List", "DFS_Akustik")",
            "columns": [
                { "data": "ID" },
                { "data": "MessID" },
                { "data": "KL_ID" },
                { "data": "MP_ID" },
                { "data": "LwLin50ss" },
                { "data": "LwLin63ss" },
                { "data": "LwLin80ss" },
                { "data": "LwLin100ss" },
                //{ "data": "LwLin125ss" },
            ],
        });
    });
</script>

最後の列がアクティブでない場合、次のことができます。

http://ziehl-abegg.com/files/work.jpg

最後の列の//を削除すると、次のようになります。

http://ziehl-abegg.com/files/work_not.jpg

この問題を解決するにはどうすればよいですか?私を助けてください...私は月曜日から一日中、解決策を探します!!

ありがとうございました。

Greetz Vegeta_77

11
Vegeta_77

私はそれを持っています、私の友達!!!!!!!!!!!!!!!!!!!!!!!非常に素晴らしい :-)

これが解決策です:

$(document).ready(function() {
    $('#example').dataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": {
            "url": "scripts/post.php",
            "type": "POST"
        },
        "columns": [
            { "data": "first_name" },
            { "data": "last_name" },
            { "data": "position" },
            { "data": "office" },
            { "data": "start_date" },
            { "data": "salary" }
        ]
    } );
} );

「ajax」を編集するだけでした。 「タイプ」「POST」を使用すると、機能します。

どうもありがとうございました。

Greetz Vegeta_77

8
Vegeta_77

おはようございます。ここにHTML /テーブルヘッダー:

<div style="width: auto; height: 750px; overflow-x: auto; overflow-y: auto;">
    <table id="example" class="table display" cellspacing="0">
        <thead>
            <tr>
                <th>ID</th>
                <th>MessID</th>
                <th>KL_ID</th>
                <th>MP_ID</th>
                <th>LwLin50ss</th>
                <th>LwLin63ss</th>
                <th>LwLin80ss</th>
                <th>LwLin100ss</th>
                @*<th>LwLin125ss</th>*@
            </tr>
        </thead>
    </table>
</div>

サーバー側の結果は良好です、見てください:

http://ziehl-abegg.com/files/ServerSide.jpg

@シッピー。 2つ目の質問が理解できません。

名前はすべて正しいです、3番目の画像/リンクを見てください。コントローラからのメソッド「リスト」は次のとおりです。

public JsonResult List([ModelBinder(typeof(DataTablesBinder))] 
IDataTablesRequest requestModel)
{
List<View_DFS_Akustik> myOriginalDataSet = dbman.View_DFS_Akustik.ToList();
List<View_DFS_Akustik> myFilteredData = dbman.Set<View_DFS_Akustik>().FullTextSearch(requestModel.Search.Value).ToList();

//Apply filter to your dataset based only on the columns that actually have a search value.
foreach (var column in requestModel.Columns.GetFilteredColumns())
{
    string query = column.Data + ".Contains(\"" + column.Search.Value + "\")";
    myFilteredData = myFilteredData.Where(query).ToList();
}

//Set your dataset on the same order as requested from client-side either directly on your SQL code or easily
//into any type or enumeration.
bool isSorted = false;
foreach (var column in requestModel.Columns.GetSortedColumns())
{
    if (!isSorted)
    {
        // Apply first sort.
        if (column.SortDirection == Column.OrderDirection.Ascendant)
            myFilteredData = myFilteredData.OrderBy(column.Data).ToList();
        else
            myFilteredData = myFilteredData.OrderBy(column.Data + " descending").ToList();

        isSorted = true;
    }
    else
    {
        if (column.SortDirection == Column.OrderDirection.Ascendant)
            myFilteredData = myFilteredData.OrderBy(column.Data).ToList();
        else
            myFilteredData = myFilteredData.OrderBy(column.Data + " descending").ToList();
    }
}

var paged = myFilteredData.Skip(requestModel.Start).Take(requestModel.Length);
return Json(new DataTablesResponse(requestModel.Draw, paged, myFilteredData.Count(), myOriginalDataSet.Count()), JsonRequestBehavior.AllowGet);
}

THX。ベジータ_77

0
Vegeta_77