我需要一些帮助来解决以下问题。我在母版页中实现了一个下拉列表。它有一个 sql 数据源,从中加载公司的值。根据选择的值(公司),它会在不同页面的标签中显示该值。 母版页中的 ddl 仍然可见,并且应该显示它在第一次选择值时所做的选定值。但是当我在 ddl 中选择另一个值时,它会显示第一个选择的值,依此类推。所以它不更新什么的。 我的代码:
这是 onselectedIndexChanged 事件处理程序:
protected void DropDownListType_SelectedIndexChanged(object sender, EventArgs e)
{
String input1 = DropDownListType.Text;
String input2 = DropDownListType.SelectedValue;
String url = "~/test.aspx?pcompany="+input1;
DropDownListType.SelectedValue = input2;
Session["Company"] = input2;
Response.Redirect(url);
}
这是我在主页的 Page_load 方法中使用的代码:
if (Session["Company"] != null)
{
DropDownListType.SelectedValue = (String)Session["Company"];
}
如果我从我的 page_load 方法中删除最后一段代码,它会使用重定向页面上的值更新标签,但它会将我的 ddl 重置为默认值,而不是在选择值 4 时将其保持在 4。
希望大家对此有所了解。任何帮助表示赞赏。提前告诉你。
最佳答案
尝试在 PreRender() 方法中设置标签值。您遇到的问题是页面生命周期。我会更改您的 OnLoad 方法以使用
if(!IsPostBack) {
if (Session["Company"] != null)
{
DropDownListType.SelectedValue = (String)Session["Company"];
}
}
这样您只需在页面加载时设置一次,然后页面将使用 View 状态自动设置所选值。
关于c# - 母版页值中的下拉列表在新选择后未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488068/