gpt4 book ai didi

javascript - 从 C# 中的 jquery bootgrid 获取排序方向

转载 作者:行者123 更新时间:2023-12-02 23:31:32 28 4
gpt4 key购买 nike

我在 .net mvc 网页上设置了一个 jquery bootgrid,它向我显示了一个带有一些命令的网格,例如排序、搜索自动完成、滚动页面。图书馆在这里:http://www.jquery-bootgrid.com/documentation

网格运行良好,我决定通过 ajax 将命令发送到后面的函数。然后,库将字符串列表发送到函数,用于处理网格:

current 1
rowCount 10
sort[filename] asc

其中文件名是我想要排序的列之一。它可以是 sort[id]、sort[name] 或我将列设置为的任何内容。这些值非常清楚,ajax 向函数发送当前网格页、行数和排序方向。但是当我进入该函数时,我只能读取前两个值:

  public ActionResult AjaxRequestData(string current,string rowCount,string sort)

此定义从网页读取前 2 个值,但无法读取排序,因为 var 的实际名称是 sort[filename],它不是字符串数组。如果我将排序声明为字符串或字符串[],结果始终为空。

我应该如何声明 Action 中的变量?到目前为止,我可以通过使用 formcollection["sort[filename]"]、formcollection["sort[id]"] 等来读取排序,但我有很多列,我真的不想为每一列写出一个条件他们,还有其他解决方案吗?

最佳答案

方法1。假设您有一个包含“col1、col2、col3、...”列的表。你可以使用:

public ActionResult AjaxRequestData(string current,string rowCount,Sort sort){
//sort.col1 == 'asc' (consider sorted by col1 in ascending order)
}

public class Sort
{
public string col1 { get; set; }
public string col2 { get; set; }
public string col3 { get; set; }
//... other columns
}

方法 2。您可以删除参数并手动解析数据。 (注意我在这里使用了 post 而不是 get)

[HttpPost]
public object AjaxRequestData(){
string jsonContent = Request.Content.ReadAsStringAsync().Result;
Dictionary<string, string> keyvalues = new Dictionary<string, string>();
string[] keyvalue_strings = jsonContent.Split('&');
string sort_column = "";
string sort_direction = "";
for (var i = 0; i< keyvalue_strings.Length; i++)
{
var a = keyvalue_strings[i].Split('=');
a[0] = a[0].Replace("%5B", "[").Replace("%5D", "]");
keyvalues.Add(a[0], (a[1]));
if (a[0].Contains("sort"))
{
sort_column = a[0].Replace("sort[", "").Replace("]", "");
sort_direction = a[1];
}
}
//now you have keyvalues, sort_column, sort_direction.
//...
}

关于javascript - 从 C# 中的 jquery bootgrid 获取排序方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56474224/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com