Mostly, works. Edit joinArray.html and set to serverSide: true
. Then click the "permission" column to trigger a sort.
Why does sorting on Permissions break?
var response = new Editor(db, "users", "users.id")
.Debug(true)
.Model<JoinModelUsers>("users")
.Model<JoinModelSites>("sites")
.Field(new Field("users.site")
.Options(new Options()
.Table("sites")
.Value("id")
.Label("name")
)
)
.LeftJoin("sites", "sites.id", "=", "users.site")
.MJoin(new MJoin("permission")
.Link("users.id", "user_permission.user_id")
.Link("permission.id", "user_permission.permission_id")
.Model<JoinAccessModel>()
.Order("permission.name")
.Field(new Field("id")
.Options(new Options()
.Table("permission")
.Value("id")
.Label("name")
)
)
)
.Process(Request)
.Data();
namespace EditorNetCoreDemo.Models
{
public class JoinModelUsers
{
public string first_name { get; set; }
public string last_name { get; set; }
public string phone { get; set; }
public int site { get; set; }
public int manager { get; set; }
}
public class JoinModelSites
{
public string name { get; set; }
}
public class JoinAccessModel
{
public int id { get; set; }
public string name { get; set; }
}
}
JS
$('#example').DataTable({
ajax: {
url: '/api/joinArray',
type: 'POST'
},
processing: true,
serverSide: true,
columns: [
{ data: 'users.first_name' },
{ data: 'users.last_name' },
{ data: 'sites.name' },
{ data: 'permission', render: '[, ].name' }
]
// ...