使用来自asp.net中列表的jquery级联下拉

时间:2014-01-29 18:43:45

标签: c# javascript jquery asp.net

在我的asp.net应用程序中(不是MVC,传统的asp.net 4.0).. 我有一个嵌套的列表对象。结构是

    plantDTO = new PlantDTO();
    plantDTO.LstTuningForks = new List<TuningForkDTO>();
    tuningDTO = new TuningForkDTO();
    tuningDTO.LstModule = new List<ModuleDTO>();
    modDTO = new ModuleDTO();
    modDTO.LstResourceTypes = new List<ResourceTypeDTO>();
    restypeDTO = new ResourceTypeDTO();
    restypeDTO.LstResource = new List<ResourceDTO>();
    resDTO = new ResourceDTO();
    restypeDTO.LstResource.Add(resDTO);
    modDTO.LstResourceTypes.Add(restypeDTO);
    tuningDTO.LstModule.Add(modDTO);
    plantDTO.LstTuningForks.Add(tuningDTO);

我在所有这些对象中加载了值。值从数据库中获取并填充。这个想法是一个工厂可能有多个tuningfork,一个tuningfork可能有多个模块,一个模块有多个资源类型等等。 现在我的要求是我要为

加载5个下拉菜单

Plant,tuningfork,module,resourcetype,resource

以层叠的方式。 即如果选择了一个工厂,那么只需要在调谐器下拉中加载其相应的调谐器, 再次基于所选择的调谐器,模块下拉必须用相应的数据重新加载

  

这些值在列表对象中可用,我不想命中db   再次

     

我需要使用jquery来做,因为我不希望页面回发   选定的指数已更改。更多我需要不使用它   我的代码背后的[web方法]属性..请让我知道如何   实现它..

2 个答案:

答案 0 :(得分:0)

我知道你说你有要求不执行回发而不是使用网络方法。为什么要求任意?否则,Ajax Control Toolkit中的CascadingDropDown可满足您的需求。

  

CascadingDropDown是一个可以附加到的ASP.NET AJAX扩展程序   ASP.NET DropDownList控件,用于获取集合的自动填充   DropDownList控件。每次选择一个   DropDownList控制更改,CascadingDropDown调用a   指定的Web服务以检索下一个的值列表   集合中的DropDownList。

答案 1 :(得分:0)

当页面最初加载时,将层次结构嵌入页面的HTML中作为某种形式的数据结构。然后让JavaScript根据层次结构填充下拉列表,并使用JavaScript函数处理重新填充其他下拉列表(如果有更改)。