我正在嘗試創建一些級聯下拉菜單。我有我的國家加載通過C#頁面加載罰款。我似乎無法得到任何東西來啓動城市。在城市之後,我會再添加一個下拉菜單,但是一旦我有了這個工作,我就可以解決這個問題。C#ASP.NET的級聯下拉菜單
我注意到「Default.aspx/LoadCitiesByState 500(內部服務器錯誤)」在我的Chrome錯誤中。
C#
protected void LoadStates()
{
// Populate State dropdown box
ListItem li = new ListItem();
li.Value = "0";
li.Text = "Select One";
DataSet dsState = SharedData.GetStates();
ddlState.DataSource = dsState.Tables[0].DefaultView;
ddlState.DataValueField = "ab";
ddlState.DataTextField = "name";
ddlState.DataBind();
ddlState.Items.Insert(0, li);
}
[WebMethod]
protected void LoadCitiesByState(string state)
{
ListItem li = new ListItem();
li.Value = "0";
li.Text = "Select One";
DataTable dt = new DataTable();
dt = SharedData.GetCities(state);
ddlCity.DataSource = dt.Rows[0].Table.DefaultView;
ddlCity.DataValueField = "ListCity";
ddlCity.DataTextField = "ListCity";
ddlCity.DataBind();
ddlCity.Items.Insert(0, li);
}
標記
<asp:DropDownList ID="state" runat="server" MaxLength="50" Style="width: 200px;" />
<asp:DropDownList ID="city" runat="server" MaxLength="50" Style="width: 200px;" />
function loadCities(selectedItem) {
$.ajax({
type: "POST",
url: "Default.aspx/LoadCitiesByState",
data: "selectedItem",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function Success(data) {
alert(selectedItem);
}
});
希望出現這種情況使頁面重載關係嗎?我試圖讓網頁不刷新。 –
它肯定會使頁面重新加載。如果你不想整個頁面重新加載,那麼你可以使用AJAX。有一個scriptManager,並在其中使用DropDownlist。這個博客顯示在gridview內部級聯。您也可以將相同的邏輯應用於您的程序。 http://csharpdotnetfreak.blogspot.com/2009/02/ajax-cascading-dropdownlist-database.html 您還可以查看MSDN(http://msdn.microsoft.com/zh-cn/library/ie/ bb399001.aspx)example – Vinay
我找到了一個更好的例子 http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx – Vinay