c# - 母版页值中的下拉列表在新选择后未更新

标签 c# asp.net drop-down-menu master-pages

我需要一些帮助来解决以下问题。我在母版页中实现了一个下拉列表。它有一个 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/

相关文章:

c# - 我是如何解决这个内存泄漏问题的?

c# - ASP CSS 页脚问题

javascript - 如何使用 Javascript 将下拉菜单置于页面的中央?

javascript - 哪个事件用于下拉菜单 - 悬停时子菜单关闭?

html - 将带有表单和错误检查的 'login.php' 页面转换为下拉登录

c# - 具有 2 个或 3 个级别的 MVC URL 路由

c# - 通过 Dispatcher 调用异步 lambda 时双重等待

javascript - Selenium JavaScriptExecutor 单击功能仅在第一次时有效

c# - 简单的类实例化在 C# 中会失败吗?

html - CSS 3.0 溢出换行和自动换行