C# 处理下拉列表
我是在asp.net mvc上新开发的,甚至是使用jquery更新的,所以这是我的问题:我有一些下拉列表,它们是使用另一个下拉列表或文本框的数据自动填充的,这些下拉列表的数据用于另一个下拉列表,就像一个链一样,我现在的问题是下拉列表有时只有一个答案/选项,如果我尝试选择这个选项,jquery不会激活$anything.change事件,因为我只有一个选项,我如何处理它 例如,我需要红色圆圈的数据来填充蓝色圆圈,但红色圆圈只有一个选项,如果我单击“无”按钮,则会发生任何情况 代码: $document.readyfunction{C# 处理下拉列表,c#,asp.net-mvc,jquery,C#,Asp.net Mvc,Jquery,我是在asp.net mvc上新开发的,甚至是使用jquery更新的,所以这是我的问题:我有一些下拉列表,它们是使用另一个下拉列表或文本框的数据自动填充的,这些下拉列表的数据用于另一个下拉列表,就像一个链一样,我现在的问题是下拉列表有时只有一个答案/选项,如果我尝试选择这个选项,jquery不会激活$anything.change事件,因为我只有一个选项,我如何处理它 例如,我需要红色圆圈的数据来填充蓝色圆圈,但红色圆圈只有一个选项,如果我单击“无”按钮,则会发生任何情况 代码: $docume
$("#tbClave1").autocomplete({
minLength: 1,
source: getClave1,
select: function(event, ui) {
updateClave2(ui.item.value);
}
});
$("#tbClave1").change(function() {
if ($("#tbClave1").val().length == 4) {
updateClave2($("#tbClave1").val());
}
});
$("#ddClave2").change(function() {
updateClave3($("#tbClave1").val(), $("#ddClave2").val());
updateNombre($("#tbClave1").val(), $("#ddClave2").val());
if ($("#ddTipoArticulo").val() == "A" ||
$("#ddTipoArticulo").val() == "B" ||
$("#ddTipoArticulo").val() == "L") {
updatePrecioA($("#tbClave1").val(), $("#ddClave2").val());
} else {
if ($("#ddTipoArticulo").val() == "N" ||
$("#ddTipoArticulo").val() == "H"){
updatePrecioB($("#tbClave1").val());
}
}
});
$("#ddClave3").change(function() {
updateClave4($("#tbClave1").val(), $("#ddClave2").val(), $("#ddClave3").val());
});
});
编辑:我如何填写下拉列表之一的示例
Jquery
函数updateClave2cod{
var dd = document.getElementById("ddClave2");
dd.options.length = 0;
dd.options[0] = new Option("Espere...");
dd.selectedIndex = 0;
dd.disabled = true;
codigo = cod;
tipoArt = $("#ddTipoArticulo").val();
// Control de errores
$("#ddClave2").ajaxError(function(event, request, settings) {
dd.options[0] = new Option("No se Cargaron Datos");
});
// Obtenemos los datos...
$.ajax({
url: '/Home/GetClave2',
dataType: 'json',
data: { words: codigo, tipoArticulo: tipoArt },
success: function(data, textStatus, jqXHR) {
$.each(data, function(i, item) {
dd.options[i] = new Option(item["clave2"], item["clave2"]);
});
dd.disabled = false;
}
});
}
控制器
public ActionResult GetClave2字符串单词,字符串tipoArticulo{
列出mySource=miConexion.clave2用户名、密码、单词、tipoArticulo;
返回JsonmySource;
}正如Alex Mendez所写,在每个dropdownlist中添加一个默认项,并使用类似“选择一”的文本似乎是最简单的答案。如果用户重新选择默认的“选择一”选项,您还需要进行一些处理。要将默认值添加到.Net下拉列表,请尝试以下代码:
YourListID.Items.Insert(0, new ListItem("Select One", "Select One");
或:
编辑错过了MVC
在MVC中,当您绑定初始ViewData时,只需确保选择最简单的一个:
Dictionary<int, string> dictionaryList = DropDownListItems();
ViewData["ModelData"] = new SelectList(dictionaryList, "Key", "Value")
为什么不在下拉列表中添加一个“选择一”选项并使其成为必需的选项?这样,它会触发一个选择更改事件。')因为每次该选项不同时,它并不总是相同的选项,这取决于以前的选项,您在图片中看到的所有三个下拉列表都会自动填充。您可以在每个下拉列表中都有一个“选择一”选项每个选项中都有不同的选项。因此,每次你在dropdown1中选择一个选项时,你都会清除dropdown2上的选项,添加select One选项,然后添加基于dropdown1选择的选项。哦,对不起,我第一次不理解你,我是如何做到的?有所有答案。ASP.NET M中有n个服务器控件的概念但是如果我在jqeury中填写dd?我将编辑我的问题,而使用JQuery进行编辑只需要很少的工作。请查看此链接。请参阅我的博客文章
Dictionary<int, string> dictionaryList = DropDownListItems();
ViewData["ModelData"] = new SelectList(dictionaryList, "Key", "Value")