在我的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方法]属性..请让我知道如何 实现它..
答案 0 :(得分:0)
我知道你说你有要求不执行回发而不是使用网络方法。为什么要求任意?否则,Ajax Control Toolkit中的CascadingDropDown可满足您的需求。
CascadingDropDown是一个可以附加到的ASP.NET AJAX扩展程序 ASP.NET DropDownList控件,用于获取集合的自动填充 DropDownList控件。每次选择一个 DropDownList控制更改,CascadingDropDown调用a 指定的Web服务以检索下一个的值列表 集合中的DropDownList。
答案 1 :(得分:0)
当页面最初加载时,将层次结构嵌入页面的HTML中作为某种形式的数据结构。然后让JavaScript根据层次结构填充下拉列表,并使用JavaScript函数处理重新填充其他下拉列表(如果有更改)。