下拉列表不断刷新 [英] Dropdownlist keeps on refreshing

查看:76
本文介绍了下拉列表不断刷新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我有一个下拉列表,每当我选择一个选项时,它都会刷新为第一个选定的值.可能是什么问题?

Hi

I have a dropdownlist, every time I select an option it refreshes to the first selected value. What might be the problem?

protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                populateDDlEmployeeIDOnpageLoad();
                loadgrdShowSelectedappointmentOnPageLoad();

            }

        }


        #region Load ddlEmployeeID On page Load
        public void populateDDlEmployeeIDOnpageLoad()
        {
            ArrayList staffList = new ArrayList();
            systemBusinessLayer = new BusinessLayer();
            
            staffList = systemBusinessLayer.loadEmployeesWithAppointments(date);

            ddlEmployeeID.DataSource = staffList;
            ddlEmployeeID.DataTextField = "EmployeeName1";
            ddlEmployeeID.DataValueField = "EmpRecNumber1";
            ddlEmployeeID.DataBind();
            ddlEmployeeID.Items.Insert(0, ".:Select Employee:.");



        }
        #endregion


        #region A method to Load grdShowSelectedappointment On Page Load with all appoinments
        protected void loadgrdShowSelectedappointmentOnPageLoad()
        {
            string date = DateTime.Now.ToShortDateString();
            DataTable dt = new DataTable();
            systemBusinessLayer = new BusinessLayer();

            //  dt = systemBusinessLayer.grdLoadSpecificEmployeeOnPageLoad(date);
            dt = systemBusinessLayer.GetAllAppointments(date);

            grdShowSelectedappointment.DataSource = dt;
            grdShowSelectedappointment.DataBind();

        }
       
        #endregion







public void getEmployeeID()
       {
           dTable = new DataTable();
           systemBusinessLayer = new BusinessLayer();
           dTable = systemBusinessLayer.GetAllEmployeesInfo();
           foreach (DataRow dRow in dTable.Rows)//Go through each row inside datatable
           {
               string fullname = dRow["Fullname"].ToString();
               if (ddlEmployeeID.SelectedItem.Text == fullname)
               {
                   Session["EmpRecNumber"] = dRow["EmpRecNumber"].ToString();
               }
           }
       }
       protected void ddlEmployeeID_SelectedIndexChanged(object sender, EventArgs e)
       {
           getEmployeeID();
           if (DatePicker.SelectedDate.ToShortDateString() == "1/1/0001")//if date is not selected
           {
               if (!Page.IsPostBack)
               {
                   MessageBox.Show(Session["EmpRecNumber"].ToString());
               }
           }
           else
           {
               MessageBox.Show("Invalid selection");
           }
       }

推荐答案

设置DropDownList控件的AutoPostBack="True"的属性以停止刷新它
Set property of AutoPostBack="True" of DropDownList Control to stop refreshing it


转到您的. aspx页面并将下拉列表的属性设置为Autopostback ="false"
Go to your .aspx page and set the dropdownlist''s property as Autopostback="false"


您在页面加载中使用了断点,并且下拉列表选择了索引更改事件.并观察哪个点的工作以及这些点的价值.
You use break point in you page load and dropdownlist selected index changed event. and watch which point work and value of those point.


这篇关于下拉列表不断刷新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆