いくつかのカスケードドロップダウンを作成しようとしています。私は、C#のページを介して負荷が正常に私の状態をロードしている。私はちょうど都市をロードするために発砲するものを得ることができないようです。都市の後、私は別のドロップダウンを追加するつもりですが、私はこの作業をしたらそれを理解することができます。C#ASP.NETのカスケードドロップダウン
Chromeのエラーで「Default.aspx/LoadCitiesByState 500(内部サーバーエラー)」が発生しました。
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を持って、その中にドロップダウンリストを使用します。このブログでは、グリッドビュー内にカスケード表示されています。同じロジックをプログラムに適用することもできます。 http://csharpdotnetfreak.blogspot.com/2009/02/ajax-cascading-dropdownlist-database.html また、MSDN(http://msdn.microsoft.com/en-us/library/ie/)を参照することもできます。 bb399001.aspx)example – Vinay
私はあなたのための良い例を見つけました http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx – Vinay