首页 新闻 会员 周边

使用CascadingDropDown联动下拉菜单,我希望提交后保持每个菜单的选择项不变

0
悬赏园豆:40 [已关闭问题] 关闭于 2013-04-18 09:48

我的controller页面是这样的:

 public ActionResult Index(int? id,string lb)
        {
            ViewBag.DlistProClass = new SelectList(_db.ProClasses, "CodeClass", "Name",lb);

            var stockslist = _db.Stocks.Where(s=>s.AddDate==DateTime.Today).OrderBy(s=>s.Id).ToPagedList(id?? 1,20);
            return View(stockslist);
        }

        //根据产品类型编码返回材质列表
        public ActionResult MaterialByClass(string lb)
        {
            var materials = _db.Products.Where(m => m.CodeClass == lb).ToList().Select(a => new SelectListItem() { Text = a.Material.Name != null ? a.Material.Name : "[NO Date}", Value = a.CodeMaterial});
            return Json(materials.Distinct());
        }
        //根据材质编码返回产品规格
        public ActionResult SpecByMaterial(string cz)
        {
            var specs = _db.Products.Where(s => s.CodeMaterial == cz).ToList().Select(s => new SelectListItem() { Text = s.Spec.Name != null ? "Φ"+s.Spec.Name+"mm" : "[No Date]", Value = s.CodeSpec,Selected=true  });
            return Json(specs);
        }

View页面是这样的:

 <script type="text/javascript">
        $(document).ready(function () {
            $("#CodeMaterial").CascadingDropDown("#lb", '/Home/MaterialByClass');
            $("#CodeSpec").CascadingDropDown("#CodeMaterial", '/Home/SpecByMaterial');
        });
        $(document).ready(function () {
            $("#lb").change();
        });

    </script>
<div id="Fiter">
  <div id="search">
  @using (Html.BeginForm("Index", "Home", FormMethod.Get, new { name = "nbform" }))
  {
  <table width="770" border="0" cellspacing="0" cellpadding="0">

  <tr>
    <td width="50" align="right">品名:</td>
    <td>@Html.DropDownList("lb", ViewBag.DListProClass as SelectList, "--全部--", new { @style = "width:80px" })</td>
    <td width="50" align="right">材质:</td>
    <td>    
        <select id="CodeMaterial" name="cz"></select>    
    </td>
    <td width="50" align="right">规格:</td>
    <td>
     <select id="CodeSpec" name="gg"></select>
    </td>
    
    <td width="260"><img alt="点击搜索" src="/Content/images/searchbtn.gif" onclick="document.forms['nbform'].submit()" style="cursor:pointer"/></td>
  </tr>
  </table>
  }

我想实现的功能见下图(提交查询以后还能保持如下状态): 

 

产品分类:材质:规格:

问题补充:

比如我要提交的菜单选项是象下图一样的:

提交后返回值也应该是在这个状态,而不是提交后全部恢复为初始状态了,就象下面的视图一样:

============================

你说的在Action里做?那怎么去做呢?我试了N次了还是不行,能给个示例吗?谢谢!

James·wang的主页 James·wang | 初学一级 | 园豆:88
提问于:2013-03-13 09:49
< >
分享
所有回答(2)
0

submit之后,服务器端需要有一个对应的Action进行处理。通常这个Action是接受POST请求的,你可以在这个Action里面返回数据的时候,恢复原来的样子

另外,你的界面和代码都不一致的。

陈希章 | 园豆:2538 (老鸟四级) | 2013-03-13 18:25
0

我使用另一种方式解决了,上面这种方式很不灵活。

James·wang | 园豆:88 (初学一级) | 2013-04-18 09:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册