Coders,
我有一个带有AutoPostBack = True的asp.net下拉列表控件。该控件放在defautl页面上的html / javascript选项卡容器URL为/Default.aspx。为了与下拉列表进行交互并触发AutoPostBack,用户必须选择标签项#2,它将页面的URL更改为/default.aspx#content-tab-1-2-tab。这是因为下拉列表放在选项卡项#2中,用户访问/default.aspx时看不到它。
现在的问题是,每当页面回发时,由于下拉列表中的选择更改,页面将指向/default.aspx URL而不是/default.aspx#content-tab-1-2-tab URL 。这会导致下拉列表不可见,用户必须单击选项卡项#2才能再次与下拉列表进行交互。
如何强制下拉列表中的AutoPostBack操作指向/default.aspx#content-tab-1-2-tab而不是/default.aspx?
这是我代码中的一个片段
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;
}
谢谢。
答案 0 :(得分:1)
因为URL的片段部分(包括#之后的部分)没有被发送到服务器,所以你将更难以解决这个问题,而不是你应该的样子。修复它的一种方法是添加一些javascript,用于在更改选项卡时设置隐藏字段的值。然后当它回发时,您将知道您所在的页面,并且您可以将该片段作为重定向的一部分。