C# 如何根据以前的选择筛选下拉列表
我有两个表,即State和Country。这两个是我的视图页面中的下拉列表。 我使用一个独立的查询来显示它们中每一个的下拉值。 在表状态中,我有stateid和countryid。 我需要根据国家选择筛选州值。 我甚至有一个名为table的主表,它由state和country的id组成 以下是我过去的展示方式C# 如何根据以前的选择筛选下拉列表,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我有两个表,即State和Country。这两个是我的视图页面中的下拉列表。 我使用一个独立的查询来显示它们中每一个的下拉值。 在表状态中,我有stateid和countryid。 我需要根据国家选择筛选州值。 我甚至有一个名为table的主表,它由state和country的id组成 以下是我过去的展示方式 enter code here //获取状态值的步骤 var query = (from i in dbContext.countries j
enter code here
//获取状态值的步骤
var query = (from i in dbContext.countries
join j in dbContext.States on i.Country_id equals j.Country_id
where j.State_id >= 0
select new
{
state = j.State_name}).ToArray//To get state values
在这里输入代码
var str = (from li in dbContext.countries
where li.Country_id >= 1
select new
{
country = li.Country_name}).ToArray();//To get country
价值观
以及如何使用主表“table”中的值进行过滤查询。我在编写过滤查询时遇到了一个问题
这可以使用linq查询吗?
请告诉我怎么做
谢谢这可以通过不同的方式实现。一种方法是,当第一个下拉列表更改时,让服务器通过Ajax返回有效选项的过滤列表 例如,假设这个场景:一个有两个DropDownLists的视图;一个是国家,另一个是国家。带有状态的下拉列表为空,默认情况下禁用,直到选择国家/地区 因此,您可以在控制器中执行以下操作:
public ActionResult Index()
{
ViewBag.Country = new [] {
new SelectListItem() { Text = "Venezuela", Value = "1" },
new SelectListItem() { Text = "United States", Value = "2" }
};
return View();
}
这种观点:
<div class="editor-field">
@Html.DropDownList("Country")
@Html.DropDownList("State", Enumerable.Empty<SelectListItem>(), "States", new { @disabled = "disabled" })
</div>
最后一件事是客户端代码。本例使用jQuery并在country下拉列表上设置一个change event listener,它通过Ajax调用新的控制器操作。然后,它使用返回的值更新“状态”下拉列表
$(document).ready(function () {
$('#Country').change(function () {
$.ajax({
url: '/Home/StatesByCountry',
type: 'POST',
data: { countryId: $(this).val() },
datatype: 'json',
success: function (data) {
var options = '';
$.each(data, function () {
options += '<option value="' + this.id + '">' + this.state + '</option>';
});
$('#State').prop('disabled', false).html(options);
}
});
});
});
$(文档).ready(函数(){
$('#Country')。更改(函数(){
$.ajax({
url:“/Home/StatesByCountry”,
键入:“POST”,
数据:{countryId:$(this.val()},
数据类型:“json”,
成功:功能(数据){
var选项=“”;
$。每个(数据、函数(){
选项+=''+此.state+'';
});
$('#State').prop('disabled',false).html(选项);
}
});
});
});
您好,这很好,但是在每个表都有具有唯一Id的td单元格的表行中,我该如何执行此操作。或者,在表行中,我该如何获得相同的行列列选定值,即上一个选定值以执行筛选
$(document).ready(function () {
$('#Country').change(function () {
$.ajax({
url: '/Home/StatesByCountry',
type: 'POST',
data: { countryId: $(this).val() },
datatype: 'json',
success: function (data) {
var options = '';
$.each(data, function () {
options += '<option value="' + this.id + '">' + this.state + '</option>';
});
$('#State').prop('disabled', false).html(options);
}
});
});
});