コーダー、
AutoPostBack=Trueのasp.netドロップダウンリストコントロールがあります。コントロールは、defautlページのhtml/javascriptタブコンテナに配置されます。URLは/Default.aspxです。ドロップダウンリストを操作してAutoPostBackを起動するには、ユーザーはページのURLを/default.aspx#content-tab-1-2-tabに変更するタブアイテム#2を選択する必要があります。これは、ドロップダウンリストがタブアイテム#2に配置されており、ユーザーが/default.aspxにアクセスしても表示されないためです。
ここで問題となるのは、ドロップダウンリストでの選択の変更により、ページがポストバックされるたびに、ページが/default.aspx#content-tab-1-2-tabURLではなく/default.aspxURLを指すようになることです。これにより、ドロップダウンリストが表示されなくなり、ユーザーはタブアイテム#2をクリックしてドロップダウンリストを再度操作する必要があります。
ドロップダウンリストのAutoPostBackアクションが/default.aspxではなく/default.aspx#content-tab-1-2-tabを指すようにするにはどうすればよいですか?
そして、これが私のコードの抜粋です
protected void Page_Load(object sender, EventArgs e)
{
DropDownList_City.Enabled = false;
DropDownList_District.Enabled = false;
GMap_main.addControl(new GControl(GControl.extraBuilt.MarkCenter));
GMap_main.addControl(new GControl(GControl.extraBuilt.TextualCoordinatesControl));
GMap_main.enableGoogleBar = true;
GMap_main.Language = "ar";
if (!IsPostBack)
{
var countries = from x in db.Countries select x.name_ar;
//BINDING THE DROP DOWN LIST
DropDownList_Country.DataSource = countries;
DropDownList_Country.DataBind();
DropDownList_City.Enabled = false;
DropDownList_District.Enabled = false;
}
}
/// <summary>
/// EVENT HANDLING FOR THE DROP DOWN LIST
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void DropDownList_Country_SelectedIndexChanged(object sender, EventArgs e)
{
var city = from x in db.Cities where x.Country.name_ar == DropDownList_Country.SelectedValue select x.name_ar;
DropDownList_City.DataSource = city;
DropDownList_City.DataBind();
DropDownList_City.Enabled = true;
}
ありがとうございました。