当前位置: 首页 > 编程语言 > C#

根据在另一个DropDown上选择的值填充DropDown - Select分享

时间:2023-04-11 00:31:57 C#

C#学习教程:根据在另一个DropDown上选择的值填充DropDown/选择我正在使用带有C#的ASP.NETMVC和一些javascript(JQuery、JSON...)。我要做的是根据其他选定值填充下拉列表。这看起来很简单(我知道它很简单)但是这个特殊情况让我失望了。耽误了很多时间,还在磕头。如果有人能提供帮助,我将不胜感激。我的代码如下:我有一个“任务”类的对象,它既有阶段又有序列。第二个下拉列表中用户可用的订单将取决于此任务在第一个下拉列表中分配的阶段。订单只是一个Int32(订单来自订单,而不是来自BusinessOrder)首先DropDown使用此IF检查会话是否为空,然后继续显示默认消息或将所选值作为默认值。<%if(TempData["TaskObject"]!=null){varPhases=newSelectList(ViewData["phaseList"]asList,"Phase_ID","Phase_Name",((Task)TempData["TaskObject"]).Phase_ID.ToString());%><%=Html.DropDownList("Phase_ID",(newSelectList((List)ViewData["phaseList"],"Phase_ID","Phase_Name")),"请选择...",new{@class="textbox"})%>第二个DropDown与第一个DropDown非常相似,但它的SelectList是一个列表列表。每个列表都包含第一个DropDown中每个选项的可能选择。不会有太多,所以别担心。<%if(TempData["TaskObject"]!=null){varorderList=(ViewData["orderList"]asList)[0];varorders=newSelectList(orderList,((Task)TempData["TaskObject"]).Phase_ID.ToString());%><%=Html.DropDownList("Order_ID",(newSelectList((List)ViewData["phaseList"],"Phase_ID","Phase_Name")),"请选择...",new{@class="textbox"})%>现在的问题是:如何让第二个DropDown根据第一个DropDown中的选定值更改其值?我的JavaScript很糟糕(尽管开始学习)。我们在项目中使用了JQuery、JSON。提前感谢您的关注。您基本上想要将javascript事件附加到第一个下拉列表,并让jquery查询Web服务(或其他)以获取有关该ID的详细信息。然后在javascript中,使用可用选项重新呈现第二个下拉列表。这是一个很好的例子。以下示例中的Javascript摘录:$(function(){$.getJSON("/Home/Countries/List",function(data){varitems="---------------------";$.each(data,function(i,country){items+=""+country.Text+"";});$("#Countries").html(items);});$("#Countries").change(function(){$.getJSON("/Home/States/List/"+$("#Countries>option:selected").attr("value"),function(data){varitems="--------------------";$.each(data,function(i,state){items+=""+state.Text+"";});$("#States").html(items);});});});您需要捕获第一个DropDown的更改事件。并在此处填写/选择您需要的值。$('#Phase_ID').change(function(){vart=$(this);$('#Order_ID').val(t.val());//这只是为了举例。});关于如何执行此操作的一个很好的教程来自StephenWalther它应该很容易做到上面是C#学习教程:根据在另一个DropDown上选择的值填充一个DropDown/Select如果它对你们有用和需要,请分享所有内容了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: