Jquery数据表为crud操作添加额外的列c#

时间:2013-02-18 12:22:57

标签: c# jquery asp.net-mvc datatables

我正在尝试为crud操作添加2个额外的列,即选择并删除在列中显示带有主键链接的图像。我不能让它显示或它说我有不正确的列数。 表格视图

<table class="SearchResultsTable">
<thead>
    <tr>
        <th>
            @Html.DisplayName("User Id")
        </th>
        <th>
            @Html.DisplayName("User Email")
        </th>
        <th>
            @Html.DisplayName("User Role")
        </th>
        <th>
            @Html.DisplayName("Select")
        </th>
        <th>
            @Html.DisplayName("Delete")
        </th>
    </tr>
</thead>
<tbody>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.user_pk)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.user_email)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.user_type)
            </td>
            <td>
                <a href="@Url.Action("GetUser", "User", new { id = item.user_pk })">
                    <img src="/Content/Images/SelectIcon.gif" alt="My Image" />

                </a>
            </td>
            <td>
                <a href="@Url.Action("GetUser", "User", new { id = item.user_pk })">
                    <img src="/Content/Images/DeleteIcon.gif" alt="My Image" />

                </a>
            </td>
        </tr>
    }
</tbody>

jquery的

<script type="text/javascript">

    $(document).ready(function () {
        $(".SearchResultsTable").dataTable({
            'bServerSide': true,
            'bProcessing': true,
            'sAjaxSource': '/User/FilteredUsers',
            "bJQueryUI": true,
            "bAutoWidth": false,
            "bPaginate": true,
            "sPaginationType": "full_numbers",
            "iDisplayLength": 25,
            "aoColumns": [
            { "sName": "user_pk",
                "bSearchable": false,
                "bSortable": false,
            },
            { "sName": "user_email" },
            { "sName": "user_role" },
            //{
            //    "mData": null, "bSearchable": false,
            //    "bSortable": false, "sClass": "editControl",
            //    "sDefaultContent": '<img src="/Content/Images/SelectIcon.gif"  />'
            //},
            //{
            //    "mData": null, "bSearchable": false,
            //    "bSortable": false, "sClass": "editControl",
            //    "sDefaultContent": '<img src="/Content/Images/DeleteIcon.gif"  />'
            //}

            ]

            /* make the first and last columns not sortable */

        });
    });
</script>

}

控制器

    // GET: /User/Details/5
    public ActionResult FilteredUsers(jQueryDataTableParamModel param)
    {
        RestClient RestClientObject = new RestClient("http://domain");
        var request = new RestRequest("api/user/", Method.GET);
        request.AddParameter("page", param.iDisplayStart);
        request.AddParameter("pageSize", param.iDisplayLength);
        if (param.sSearch != null)
            request.AddParameter("userName", param.sSearch);

        IRestResponse<Pager<UserSummaryModel>> response =  RestClientObject.Execute<Pager<UserSummaryModel>>(request);
        IEnumerable<string[]> result = null;
        try
        {
            result = from c in response.Data.pagedSet select new[] { Convert.ToString(c.user_pk), c.user_email, c.user_type };
        }
        catch
        {
            result = Enumerable.Empty<string[]>();
        }
        return Json(new
    {

        sEco = param.sEcho,
        iTotalRecords =  response.StatusCode == HttpStatusCode.OK ? response.Data.totalRecordSize : 0,
        iTotalDisplayRecords =  response.StatusCode == HttpStatusCode.OK ? response.Data.totalRecordSize : 0,
        aaData = result
    },
   JsonRequestBehavior.AllowGet);
    }

如果我没有将额外的行放在控制器中的结果数组中,它说我有不正确的列号..如果我将它们从jquery中删除我不会得到错误但是列没有填充。请告诉我该怎么做

0 个答案:

没有答案