【问题标题】:How to create and set checkbox in DataTables如何在 DataTables 中创建和设置复选框
【发布时间】:2015-09-22 11:00:00
【问题描述】:

我有一个表加载了 AJAX 调用并使用 jQuery 的 DataTables 扩展进行渲染。这是我的代码:

 $("#tblSelectedUserRoles").dataTable({
        bProcessing: true,
        sAjaxSource: '@Url.Action("GetAllRolesForUser")?' + "userId=" + $("#txtSelectedUserId").val(),
        bJQueryUI: true,
        sProcessing: "<img src='~/Images/spinner.gif' />",
        dom: 'T<"clear">rtip',
        bAutoWidth: false,
        "aoColumns": [
            { "sWidth": "1%", sClass: "smallFonts" },
            { "sWidth": "20%", sClass: "smallFonts" },
            { "sWidth": "20%", sClass: "smallFonts" },
            {
                "sWidth": "20%", sClass: "smallFonts", "sName": "UserRoleId", "mRender": function (data, type, row) {
                    return "<input type='checkbox' onchange=defaultrole('" + row[0] + "'); >";
                }},
            { "sWidth": "20%", sClass: "smallFonts" },
            {
                "sName": "UserRoleId", "sWidth": "20%", sClass: "smallFonts", "mRender": function (data, type, row) {
                    return "<button class='gridButton' onclick=deleterole('" + row[0] + "');>Delete Role</button>";
                }}
        ]
    });

我正在尝试在表格中放置一个复选框。复选框出现,当我单击其中任何一个时,我使用正确的 user_role_id 调用该函数没有问题。我的问题是数据来自控制器中的这个:

 [HttpGet]
    public ActionResult GetAllRolesForUser(string userId)
    {
        List<UserRoleModel> userroles = DataRepository.GetSelectedUserRoles(userId);
        return Json(new
        {
            aaData = userroles.Select(x => new String[] {
                x.UserRoleId,
                x.Role,
                x.RoleDesc,
                x.Default.ToString(),
                x.UarApproved.ToString()})
        }, JsonRequestBehavior.AllowGet);
    }

默认值和批准值是布尔值,我必须将它们转换为字符串以传递给 aaData。在任何情况下,至少应该设置一个复选框时,都不会设置任何复选框。你怎么做到这一点?

【问题讨论】:

    标签: jquery checkbox datatables


    【解决方案1】:

    您需要实际设置checked 状态。如果应该定义检查状态的值是 UarApproved 并且该值是字符串化的布尔值,总是 'true''false',然后这样做:

    {
        sWidth: "20%",
        sClass: "smallFonts",
        sName: "UserRoleId",
        mRender: function(data, type, row) {
          return '<input type="checkbox" checked="'+row[4]+'" onchange=defaultrole('+row[0]+');/>';
        }
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多