一千萬個為什麽

搜索

必填字段驗證器在後退下拉列表中消失

我在asp.net中填充了兩個下拉列表。 兩者都分配給必需的字段驗證器。

代碼隱藏如下

 if (!Page.IsPostBack)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("emp");
            dt.Columns.Add("ename");
            for (int i = 0; i < 5; i++)
            {
                DataRow dr = dt.NewRow();
                dr["emp"] = (i + 1).ToString();
                dr["ename"] = (i + 1).ToString();
                dt.Rows.Add(dr);
            }
            ddlEmp.DataSource = dt;
            ddlEmp.DataTextField = "emp";
            ddlEmp.DataValueField = "ename";
            ddlEmp.DataBind();
            ListItem l1 = new ListItem("--Select--", "0");
            ddlEmp.Items.Insert(0, l1);
            DropDownList1.DataSource = dt;
            DropDownList1.DataTextField = "emp";
            DropDownList1.DataValueField = "ename";
            DropDownList1.DataBind();
            DropDownList1.Items.Insert(0, l1);

        }

設計師代碼如下

 
    
    

    
    
    
    

現在發生的事情是當我選擇一個字段,然後再次選擇“ - 選擇 - ”時,驗證器出現並消失。

為什麽驗證器不存在? 我哪裏錯了?

赫瑪

最佳答案

這個問題困擾了我很多次,只是因為我認為他們設計它有點古怪。

問題是您使用 InitialValue 屬性與列表項的value屬性進行比較時應與文本值進行比較。他們應該將屬性命名為 InitialText 或者什麽......

RequiredFieldValidator 更改為以下內容:




  

客戶端代碼正在比較正在顯示的值,而不是後面附加到選擇的值。

轉載註明原文: 必填字段驗證器在後退下拉列表中消失