带有jqGrid表单编辑的ASP.NET MVC - 用于选择选项的Controller Action

时间:2009-08-25 03:05:35

标签: jquery asp.net-mvc jqgrid

好吧,我正在寻找jQuery的jqGrid插件并尝试将其合并到ASP.NET MVC应用程序中。由于陷阱周围的各种博客文章,我有所有基本的功能。

我现在想要锻炼的是如何从控制器返回数据,以便在编辑表单上填充选择选项。

我知道我只需要为jqGrid提供一个URL来调用以取回选项,但对于我的生活,我无法想象(可能是太少咖啡?)如何从Controller中呈现这个。 / p>

例如,选择列表值可以硬编码为“1:one; 2:two”,我只需要返回该表单中的json对象吗?还是一个字符串?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

如果您还没有看过,我认为这篇文章可以帮助您

http://shashankshetty.wordpress.com/2009/03/04/using-jsonresult-with-jquery-in-aspnet-mvc/

答案 1 :(得分:1)

为了填充dynamicaly,选择下拉列表只需在jqgrid的创建之上创建一个变量。

  var countries = $.ajax(
                        {url:'/Specimens/GetAreaStrList/',async: false, 
             success: function(data, result) 
           {
                if (!result) 
                alert('Failure to   retrieve the Countries.');
               }
            }
            ).responseText;

然后填充网格

      {name:'AreaID', index:'AreaID', width:150, align:'left', editable:true, 
                      edittype:"select",editoptions:{size: 71} }
              ],
      onSelectRow: function(id)
      {
          if(id && id !== lastsel2)
          {
              jQuery('#list').restoreRow(lastsel2);
              jQuery('#list').editRow(id, true);
              lastsel2 = id;
          }
      },
      loadComplete: function()
      {
         jQuery('#list').setColProp('AreaID', {editoptions: {value: countries}});
      },

控制器中的代码:

public ActionResult GetAreaStrList()         {             返回内容(“171:俄罗斯联邦; 86:另一个国家”);         }

我从这个博客中受到启发: http://geekswithblogs.net/renso/archive/2009/07/02/jqgrid-dynamically-loading-select-options.aspx

答案 2 :(得分:0)

哎呀......我遇到的主要问题是试图找出控制器动作的返回类型。最后它很简单,我看不到树木。我最终得到了一个来自Controller动作的简单字符串输出:

 public string ObjectList()
 {
    // replace this with the code to construct your list values
    return "1:one;2:two";
 }

承认我错过了它很简单。