加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET DropDownList不保留所选项目在回发

发布时间:2020-12-15 23:45:40 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP DropDownList填充在Page_Load事件上,在我选择一个项目并点击一个按钮后,所选项目被清除,并且DropDownList中的第一个项目被选中. (仅当页面不是回发时,DropDownList才被填充) 请帮助 if (!IsPostBack) { ListCountry lCountries = new ListCountr
我有一个ASP DropDownList填充在Page_Load事件上,在我选择一个项目并点击一个按钮后,所选项目被清除,并且DropDownList中的第一个项目被选中. (仅当页面不是回发时,DropDownList才被填充)

请帮助

if (!IsPostBack)
    {
            List<Country> lCountries = new List<Country>();
            List<CompanySchedule> lCompanySchedules = new List<CompanySchedule>();
            this.Load_Countries(lCountries);
            this.Load_Schedules(lCompanySchedules);
            if (personnelRec == null)
            { personnelRec = new Personnel(); }
        if (Request.QueryString["UA"] != null && Convert.ToInt32(Request.QueryString["UA"].ToString()) > 0)
        {
            userAccount.ID = Convert.ToInt32(Request.QueryString["UA"].ToString());
            App_Database.Snapshift_Select_Helper.SNAPSHIFT_SELECT_PERSONNEL_APP_ACCOUNT(ref userAccount);
        }
            this.imgEmployeePicture.ImageUrl = "./images/Employees/nophoto.gif";
            if (Request.QueryString["EI"] != null && Convert.ToInt32(Request.QueryString["EI"].ToString()) > 0)
            {
                this.Load_PersonnelRec(Convert.ToInt32(Request.QueryString["EI"].ToString()));
            }
            else
            {
                this.lblChangeDirectionHead.Enabled = false;
                this.lblChangeDirections.Enabled = false;
                this.lbSchedules.Disabled = true;
            }
    }

解决方法

页面生命周期执行以下操作(加上与您的问题无关的其他步骤):

> OnInit
>从ViewState填充控件(在回发期间)
>设置所选值(在回发期间)
> Page_Load

您需要启用ViewState,以便在“选择”该项目之前可以填充该列表.在这种情况下,请确保不在Page_Load中重新填充并丢失所选值.做一些像(!IsPostback){//填充}

否则,您必须在每个页面请求的OnInit事件中手动填充列表. Page_Load在生命周期中为时已晚,因此所选项目丢失.

编辑:

DropDownList也必须设置有效值(与浏览器中显示的文本分开).这是通过DataValueField属性完成的.每个值都必须是唯一的,否则只能选择第一个重复项.如果您浏览浏览器中的HTML源代码,则应该具有:

<select>
    <option value="unique_value1">Displayed text1</option>
    <option value="unique_value2">Displayed text2</option>
</select>

唯一的值用于在服务器端选择正确的项目.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读