我正在 MVC 中实现 Devexpress 网格控制。我陷入了一个困境,我需要 JavaScript 中的当前排序依据列和排序顺序(asc/desc)。我还尝试了 clientSide 事件 OnColumnSortingChanged(s , e) ,它仅在单击事件中提供列的名称,而不是来自 gridview javascript 对象。
最佳答案
经过研究得到答案...
必须将 CustomJsProperty 添加到部分 View 中的控件,如下所示
settings.CustomJSProperties = (s, e) =>
{
var Grid = s as MVCxGridView;
var result = new System.Collections.Hashtable();
foreach (var col in Grid.AllColumns)
{
var dataCol = col as GridViewDataColumn;
if (dataCol != null)
{
if (dataCol.SortIndex == 0)
{
e.Properties["cpColumnsProp"] = new Dictionary<string, object>()
{
{ "sortcolumn", dataCol.FieldName },
{ "sortorder", ((Convert.ToString(dataCol.SortOrder).Equals("Ascending")) ? "asc" : "desc")}
};
}
}
}
};
按如下方式处理 ColumnSortingChange 事件
function gvChartList_OnColumnSortingChanged(s, e) {
$("#hdsortname").val(e.column.fieldName); // contains the sort column name
$("#hdsortorder").val(((s.cpColumnsProp.sortcolumn == e.column.fieldName) ? "desc" : "asc")); // contains the sort column order
}
最后但并非最不重要的一点是,必须定义列的默认排序索引和排序顺序
settings.Columns.Add(col =>
{
// column details
col.SortIndex = 0;
col.SortAscending();
});
关于javascript - 在 Javascript 中获取 Devexpress Gridview 排序依据和排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26627420/