Пустой DropDownList на странице загрузки - PullRequest
0 голосов
/ 17 июля 2011

У меня DropDownList заполняется элементами, поступающими через DataBinding из WCF веб-службы. Тем не менее, всякий раз, когда я впервые запускаю страницу, первый элемент в списке выбирается автоматически, а я хотел бы, чтобы он начинался полностью пустым. Возможно, я мог бы легко решить эту проблему, добавив пустой элемент в верхней части элементов списка, но я не хочу, чтобы этот пустой элемент отображался, когда пользователи нажимают DropDownList. Могу ли я сделать это любым простым способом?

Ответы [ 4 ]

3 голосов
/ 17 июля 2011

Вот что я делаю:

        using (Entities db = new Entities())
        {
            ddlRelationships.DataSource = (from q in db.RelationshipTypes where (q.Active == true) orderby q.Description select q);
            ddlRelationships.DataValueField = "Code";
            ddlRelationships.DataTextField = "Description";
            ddlRelationships.DataBind();

            ddlRelationships.Items.Insert(0, "--Please Make Selection--");
            ddlRelationships.Items[0].Value = "0";
        }

Обратите внимание, что после привязки данных к ddL я вручную вставляю новый элемент в позицию '0'.Вы должны быть в состоянии приспособиться к вашей ситуации довольно легко.Позже в моем валидаторе я проверяю, было ли выбрано что-то кроме «0», если / когда я хочу принудительно сделать выбор пользователем.

2 голосов
/ 18 июля 2011
DDL.InsertAt(0, new Item('','0'));
DDL.Attributes["onclick"] = "if(this[0].value=='0') this.remove(0);";
1 голос
/ 17 июля 2011
if (!IsPostBack)
        {
            ddl_type.Items.Add(new ListItem("", "0"));
            ddl_type.Items.Add(new ListItem("Item 1", "1"));
            ddl_type.Items.Add(new ListItem("Item 2", "2"));
            ddl_type.Items.Add(new ListItem("Item 3", "3"));
            ddl_type.Items.Add(new ListItem("Item 4", "4"));
            ddl_type.Attributes.Add("onclick", "manageType('" + ddl_type.ClientID + "');");
}

<script type="text/javascript">
        function manageType(pType) {
            var list = document.getElementById(pType);
            if(list[0].value == '0') // the value of the removed value
                list.remove(0);
        }
    </script>
1 голос
/ 17 июля 2011

Вы можете использовать метод ClearSelection в DropDownList. Смотри http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.clearselection.aspx

...