嘿伙计们,我知道它已经讨论了很多,但我仍然没有让它发挥作用。
我需要的是通过几个下拉列表过滤网格视图,主要思想是“继续”过滤网格视图。我的意思是,当我从ddl1中选择值时,ddl2将根据ddl1中的选定值进行过滤。
也称为级联下拉列表,但我不想(不能)使用Ajax Control Toolkit ......
还有其他解决方案吗?也许这个方法
protected void DropDownList2_SelectedIndexChanged(...)
可以做到这一点,但我不知道如何使用它。
请帮忙 提前致谢。
答案 0 :(得分:2)
看看下面的内容。它只是给你一个想法......
DropDownList1_SelectedIndexChanged(...){
// get the ddl1 selected value
// filter the datasource used by dropdownlist2
// databind DropDownList2
}
DropDownList2_SelectedIndexChanged(...){
// get the ddl1 selected value
// get the ddl2 selected value
// filter the datasource used by GridView(using the DropDownList selected values)
// databind GridView
}
答案 1 :(得分:2)
我建议使用Jquery来填充级联的下拉列表。将此脚本添加到您的网页。
$(document).ready(function () {
$(“#<%= ddlState.ClientID%>”)。change(function(){
var sourceddl = "<%= ddlState.ClientID %>";
var stateid = $("#<%= ddlState.ClientID %> option:selected").val();
var Stateid = { Stateid: stateid };
$.ajax({
type: 'POST',
url: 'YourCodeBehind.aspx/GetCounties',
data: JSON.stringify(Stateid),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
if (data.d) {
var options = [];
if (result.d) {
for (var i = 0; i < result.d.length; i++) {
options.push('<option value="',
result.d[i].countyID, '">',
result.d[i].countyName, '</option>');
}
$("#<%= ddlCounty.ClientID %>").html(options.join(''));
}
}
},
error: function () {
alert("Error! Try again...");
}
});
});
});
这是webmethod,它处于相同的代码隐藏中。
[WebMethod]
public static County[] GetCounties(int Stateid)
{
County[] countiesArr = StatesCountyModel.GetCountyForState(Stateid).ToArray();
return countiesArr;
}
如果您是Jquery的新手。浏览http://Jquery.com以了解如何使用它。
希望它有所帮助。
普利文