猿问

如何在JqGrid中显示间接数据

如何在JqGrid中显示间接数据

我正在我的ASP.NET MVC Web应用程序中实现JqGrid。我有这样的数据:

 SID SNAME CITY  1   ABC   11
  2   XYZ   12
  3   ACX   13
  4   KHG   14
  5   ADF   15
  6   KKR   16

另一张桌子

 CID   CNAME  11   Chennai   
  12   Mumbai
  13   Delhi   like this

但是,在网格中,我想这样显示:

  SID SNAME  City
  1   ABC   Chennai
  2   XYZ   Mumbai
  3   ACX   Delhi
  4   KHG   Banglore
  5   ADF   Hyderabad
  6   KKR   Kolkatta

我无法使用JOIN,因为类结构如下所示:

 Class Student{
   long sid,
   string sname,
   long city}

所以,当我从数据库中读取数据时,我得到的是城市标识,而不是城市名称。

但是,我想在网格数据中显示城市名称而不是城市ID给最终用户

我需要一些像lookup函数,以便在将数据绑定到jQGrid之前,用城市名称映射城市id并显示它,而不是显示ID。

我没有找到办法来完成这件事。

请帮忙.。

The controller method i am using is as follows:public JsonResult Students()
    {
        List<Students> liStudents = new  List<Students>();
        SortedList<long, string> slLocations = new SortedList<long, string>();
        slLocations = Students.LoadLocations();
        liStudents = Students.GetStudents();
        return Json(liStudents,JsonRequestBehavior.AllowGet);
    }

如何修改返回语句,以便在json响应中也抛出sslLocations


侃侃尔雅
浏览 629回答 3
3回答

ibeautiful

我以前已经回答过这个非公开的问题了(见这里)。不过,我决定详细回答你的问题,因为你所描述的问题非常普遍。我首先提醒jqGrid提供formatter: "select"用formatoptions.value或editoptions.value将ID解码为文本。这个formatter: "select"使用value和任选separator,&nbsp;delimiter和defaultValue属性,但它不能使用edoptions.dataUrl从服务器获取所需数据,而不是使用静态数据value..问题很简单:处理dataUrl作品异步,但在网格体列的格式化过程中,不支持延迟填充。所以要用formatter: "select"一不得不集formatoptions.value或editoptions.value&nbsp;以前服务器响应将由jqGrid处理。在……里面旧的答案我建议将从服务器返回的JSON响应扩展为editoptions.value列的formatter: "select"..我建议把beforeProcessing..例如,可以以下格式生成服务器响应:{ &nbsp;&nbsp;&nbsp;&nbsp;"cityMap":&nbsp;{"11":&nbsp;"Chennai",&nbsp;"12":&nbsp;"Mumbai",&nbsp;"13":&nbsp;"Delhi"}, &nbsp;&nbsp;&nbsp;&nbsp;"rows":&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"1",&nbsp;&nbsp;"SNAME":&nbsp;"ABC",&nbsp;"CITY":&nbsp;"11"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"2",&nbsp;&nbsp;"SNAME":&nbsp;"XYZ",&nbsp;"CITY":&nbsp;"12"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"3",&nbsp;&nbsp;"SNAME":&nbsp;"ACX",&nbsp;"CITY":&nbsp;"13"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"4",&nbsp;&nbsp;"SNAME":&nbsp;"KHG",&nbsp;"CITY":&nbsp;"13"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"5",&nbsp;&nbsp;"SNAME":&nbsp;"ADF",&nbsp;"CITY":&nbsp;"12"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"6",&nbsp;&nbsp;"SNAME":&nbsp;"KKR",&nbsp;"CITY":&nbsp;"11"&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;]}并使用以下jqGrid选项colModel:&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;"SNAME",&nbsp;width:&nbsp;250}, &nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;"CITY",&nbsp;width:&nbsp;180,&nbsp;align:&nbsp;"center"}],beforeProcessing:&nbsp;function&nbsp;(response)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$self&nbsp;=&nbsp;$(this); &nbsp;&nbsp;&nbsp;&nbsp;$self.jqGrid("setColProp",&nbsp;"CITY",&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter:&nbsp;"select", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edittype:&nbsp;"select", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editoptions:&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value:&nbsp;$.isPlainObject(response.cityMap)&nbsp;?&nbsp;response.cityMap&nbsp;:&nbsp;[] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;});},jsonReader:&nbsp;{&nbsp;id:&nbsp;"SID"}演示演示了这个方法。它显示可以使用相同的方法动态设置任何列选项。例如,可以使用{ &nbsp;&nbsp;&nbsp;&nbsp;"colModelOptions":&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"CITY":&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"formatter":&nbsp;"select", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"edittype":&nbsp;"select", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"editoptions":&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"value":&nbsp;"11:Chennai;13:Delhi;12:Mumbai" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"stype":&nbsp;"select", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"searchoptions":&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"sopt":&nbsp;[&nbsp;"eq",&nbsp;"ne"&nbsp;], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"value":&nbsp;":Any;11:Chennai;13:Delhi;12:Mumbai" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;"rows":&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"1",&nbsp;&nbsp;"SNAME":&nbsp;"ABC",&nbsp;"CITY":&nbsp;"11"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"2",&nbsp;&nbsp;"SNAME":&nbsp;"XYZ",&nbsp;"CITY":&nbsp;"12"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"3",&nbsp;&nbsp;"SNAME":&nbsp;"ACX",&nbsp;"CITY":&nbsp;"13"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"4",&nbsp;&nbsp;"SNAME":&nbsp;"KHG",&nbsp;"CITY":&nbsp;"13"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"5",&nbsp;&nbsp;"SNAME":&nbsp;"ADF",&nbsp;"CITY":&nbsp;"12"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"SID":&nbsp;"6",&nbsp;&nbsp;"SNAME":&nbsp;"KKR",&nbsp;"CITY":&nbsp;"11"&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;]}和下面的JavaScript代码var&nbsp;filterToolbarOptions&nbsp;=&nbsp;{defaultSearch:&nbsp;"cn",&nbsp;stringResult:&nbsp;true,&nbsp;searchOperators:&nbsp;true}, &nbsp;&nbsp;&nbsp;&nbsp;removeAnyOption&nbsp;=&nbsp;function&nbsp;($form)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$self&nbsp;=&nbsp;$(this),&nbsp;$selects&nbsp;=&nbsp;$form.find("select.input-elm"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$selects.each(function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).find("option[value='']").remove(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;//&nbsp;for&nbsp;beforeShowSearch&nbsp;only &nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;$grid&nbsp;=&nbsp;$("#list");$.extend($.jgrid.search,&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;closeAfterSearch:&nbsp;true, &nbsp;&nbsp;&nbsp;&nbsp;closeAfterReset:&nbsp;true, &nbsp;&nbsp;&nbsp;&nbsp;overlay:&nbsp;0, &nbsp;&nbsp;&nbsp;&nbsp;recreateForm:&nbsp;true, &nbsp;&nbsp;&nbsp;&nbsp;closeOnEscape:&nbsp;true, &nbsp;&nbsp;&nbsp;&nbsp;afterChange:&nbsp;removeAnyOption, &nbsp;&nbsp;&nbsp;&nbsp;beforeShowSearch:&nbsp;removeAnyOption});$grid.jqGrid({ &nbsp;&nbsp;&nbsp;&nbsp;colModel:&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;"SNAME",&nbsp;width:&nbsp;250}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name:&nbsp;"CITY",&nbsp;width:&nbsp;180,&nbsp;align:&nbsp;"center"} &nbsp;&nbsp;&nbsp;&nbsp;], &nbsp;&nbsp;&nbsp;&nbsp;beforeProcessing:&nbsp;function&nbsp;(response)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$self&nbsp;=&nbsp;$(this),&nbsp;options&nbsp;=&nbsp;response.colModelOptions,&nbsp;p, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;needRecreateSearchingToolbar&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(options&nbsp;!=&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(p&nbsp;in&nbsp;options)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(options.hasOwnProperty(p))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$self.jqGrid("setColProp",&nbsp;p,&nbsp;options[p]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(this.ftoolbar)&nbsp;{&nbsp;//&nbsp;filter&nbsp;toolbar&nbsp;exist &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;needRecreateSearchingToolbar&nbsp;=&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(needRecreateSearchingToolbar)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$self.jqGrid("destroyFilterToolbar"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$self.jqGrid("filterToolbar",&nbsp;filterToolbarOptions); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;jsonReader:&nbsp;{&nbsp;id:&nbsp;"SID"}});$grid.jqGrid("navGrid",&nbsp;"#pager",&nbsp;{add:&nbsp;false,&nbsp;edit:&nbsp;false,&nbsp;del:&nbsp;false}) &nbsp;&nbsp;&nbsp;&nbsp;$grid.jqGrid("filterToolbar",&nbsp;filterToolbarOptions);演示使用上述代码。如果任何选项被动态更改,我们将重新创建搜索筛选器。该方法允许实现更灵活的解决方案。例如,服务器可以检测客户端(Web浏览器)的语言首选项,并根据这些选项返回数字、日期等格式选项。我相信每个人都能提出其他有趣的方案。再说一句。如果您有太多的项目在选择中(searchoptions.value和editoptions.value)我建议您不要使用字符串而不是对象作为searchoptions.value和editoptions.value..它允许您指定命令元素中的项。如果您选择的项目太多(例如,您国家的所有城市),那么您可以考虑使用选择2插件,我在其中演示了哪个用法答案..它简化了选项的选择,因为它将SELECT in元素转换为非常接近jQueryUI自动完成的元素。下一个演示演示使用选择2插件。如果单击搜索工具栏的“SELECT”元素的下拉箭头或搜索对话框,就会得到额外的输入字段,可用于快速搜索。如果开始在输入框中键入某些文本(例如,下面图片中的示例中的“e”),则选项列表将缩减为将类型化文本作为子字符串的选项:我个人认为这样的“选择搜索”控制非常实用。顺便说一下我在另一个答案如何设置colNames动态的。in可用于管理来自服务器端的更多信息。更新*相应的控制器动作Students可以是关于以下内容的public&nbsp;class&nbsp;Student&nbsp;{ &nbsp;&nbsp;&nbsp;public&nbsp;long&nbsp;SID&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;SNAME&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;&nbsp;&nbsp;public&nbsp;long&nbsp;CITY&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}}public&nbsp;class&nbsp;City&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;long&nbsp;CID&nbsp;{&nbsp;get;&nbsp;set;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;string&nbsp;CNAME&nbsp;{&nbsp;get;&nbsp;set;&nbsp;}}...public&nbsp;class&nbsp;HomeController&nbsp;:&nbsp;Controller&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;... &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;JsonResult&nbsp;Students&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;students&nbsp;=&nbsp;new&nbsp;List<Student>&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Student&nbsp;{&nbsp;SID&nbsp;=&nbsp;1,&nbsp;SNAME&nbsp;=&nbsp;"ABC",&nbsp;CITY&nbsp;=&nbsp;11&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Student&nbsp;{&nbsp;SID&nbsp;=&nbsp;2,&nbsp;SNAME&nbsp;=&nbsp;"ABC",&nbsp;CITY&nbsp;=&nbsp;12&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Student&nbsp;{&nbsp;SID&nbsp;=&nbsp;3,&nbsp;SNAME&nbsp;=&nbsp;"ABC",&nbsp;CITY&nbsp;=&nbsp;13&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Student&nbsp;{&nbsp;SID&nbsp;=&nbsp;4,&nbsp;SNAME&nbsp;=&nbsp;"ABC",&nbsp;CITY&nbsp;=&nbsp;13&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Student&nbsp;{&nbsp;SID&nbsp;=&nbsp;5,&nbsp;SNAME&nbsp;=&nbsp;"ABC",&nbsp;CITY&nbsp;=&nbsp;12&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Student&nbsp;{&nbsp;SID&nbsp;=&nbsp;6,&nbsp;SNAME&nbsp;=&nbsp;"ABC",&nbsp;CITY&nbsp;=&nbsp;11&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;locations&nbsp;=&nbsp;new&nbsp;List<City>&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;City&nbsp;{&nbsp;CID&nbsp;=&nbsp;11,&nbsp;CNAME&nbsp;=&nbsp;"Chennai"}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;City&nbsp;{&nbsp;CID&nbsp;=&nbsp;12,&nbsp;CNAME&nbsp;=&nbsp;"Mumbai"}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;City&nbsp;{&nbsp;CID&nbsp;=&nbsp;13,&nbsp;CNAME&nbsp;=&nbsp;"Delhi"} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;sort&nbsp;and&nbsp;concatinate&nbsp;location&nbsp;corresponds&nbsp;to&nbsp;jqGrid&nbsp;editoptions.value&nbsp;format &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sortedLocations&nbsp;=&nbsp;locations.OrderBy(location&nbsp;=>&nbsp;location.CNAME); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sbLocations&nbsp;=&nbsp;new&nbsp;StringBuilder(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(var&nbsp;sortedLocation&nbsp;in&nbsp;sortedLocations)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sbLocations.Append(sortedLocation.CID); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sbLocations.Append(':'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sbLocations.Append(sortedLocation.CNAME); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sbLocations.Append(';'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(sbLocations.Length&nbsp;>&nbsp;0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sbLocations.Length&nbsp;-=&nbsp;1;&nbsp;//&nbsp;remove&nbsp;last&nbsp;';' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Json(new&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;colModelOptions&nbsp;=&nbsp;new&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CITY&nbsp;=&nbsp;new&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter&nbsp;=&nbsp;"select", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edittype&nbsp;=&nbsp;"select", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editoptions&nbsp;=&nbsp;new&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;sbLocations.ToString() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stype&nbsp;=&nbsp;"select", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;searchoptions&nbsp;=&nbsp;new&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sopt&nbsp;=&nbsp;new[]&nbsp;{&nbsp;"eq",&nbsp;"ne"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;":Any;"&nbsp;+&nbsp;sbLocations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rows&nbsp;=&nbsp;students&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JsonRequestBehavior.AllowGet); &nbsp;&nbsp;&nbsp;&nbsp;}}
随时随地看视频慕课网APP
我要回答