Member 4044641 Ответов: 3

как добавить атрибут в раскрывающийся список, а затем выполнить привязку данных


Я пытаюсь добавить атрибут в элемент управления dropdownlist для хранения значения, возвращаемого для базы данных. Это значение необходимо получить код после того, как выбор сделан в выпадающем списке;

Я попробовал следующее:

ddlStatus.DataTextField = dsValues.Таблицы(0).Столбцы ("Описание").Метод toString ()
ddlStatus.DataValueField = dsValues.Таблицы(0).Столбцы ("CategoryCode").Тострин г()
ddlStatus.Атрибуты.Добавить ("SysCode", dsValues.Таблицы(0).Столбцы ("Системный Код").Метод toString( ))
ddlStatus.Привязку()

но атрибут не привязан к элементу управления

3 Ответов

Рейтинг:
22

Al-Farooque Shubho

Я создал следующие коды и прокомментировал их встроенно, чтобы вы могли понять, как привязать данные к выпадающему списку и как добавить атрибут к каждому элементу в раскрывающемся списке (предполагая, что вы хотите добавить атрибут к каждому элементу).

Вот раскрывающийся список на странице aspx:

<asp:DropDownList ID="ddlStatus" runat="server">
        </asp:DropDownList>


А вот код в CodeBehind:

public partial class Default : System.Web.UI.Page
{
    //A simple Person class for example
    class Person
    {
        public string Name
        {
            get;
            set;
        }
        public int Id
        {
            get;
            set;
        }
        public Person(string Name, int Id)
        {
            this.Name = Name;
            this.Id = Id;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //Prepare some Person objects

        IList<Person> persons = new List<Person>();

        persons.Add(new Person("John",1));
        persons.Add(new Person("Tom",2));
        persons.Add(new Person("Shubho",3));

        //Specify the Name field of Person object as the text field of an item in the drop-down list
        
        ddlStatus.DataTextField = "Name";
        //Specify the Name field of Person object as the value field of an item in the drop-down list
        ddlStatus.DataValueField = "Id";

        //Assign the persons to the datasource of the drop down list
        ddlStatus.DataSource = persons;
        //Bind the data
        ddlStatus.DataBind();

        //Now, add a "SysCode" attribute to each item in the dropdown list
        for (int i = 0; i < ddlStatus.Items.Count; i++)
        {
            ListItem item = ddlStatus.Items[i];
            item.Attributes["SysCode"] = "Code-" + (i + 1).ToString();
        }

    }
}


А далее следует HTML-разметка, которая будет сгенерирована в браузере:

<select id="ddlStatus" name="ddlStatus">
    <option syscode="Code-1" value="1">John</option>
    <option syscode="Code-2" value="2">Tom</option>
    <option syscode="Code-3" value="3">Shubho</option>
</select>


Я надеюсь, что примеры кодов объясняют сами себя, и вы можете понять, как реализовать свой код.

Я использовал пример класса для привязки данных (Person). На самом деле вы должны получить данные из базы данных и привязать их к выпадающему списку, используя какие-то коллекции объектов.


Member 4044641

Спасибо, это мне очень помогло

Рейтинг:
0

Tridip Bhattacharjee

извините, что дал ответ на старую тему. вы можете сделать это таким образом.

Тестовый элемент listitem = нового listitem { текст = srText, значение = srValue}
тест.Атрибуты.Добавить ("data-imagesrc", " xxx");
тест.Атрибуты.Добавить ("data-description", " xxx");
dropListUserImages.Предметы.Добавить (тест);


Рейтинг:
0

Member 12209655


@Html. LabelFor(model = & gt; model.Departamento, htmlAttributes: new { @class = " control-label col-md-2" })

@Html. DropDownList ("listDepto", deptos.Выберите(х =>, новые SelectListItem { значение = x.ИД.Метод toString () текст = х. Апартаменты Departamento }))
@Html. ValidationMessageFor(model = & gt; model.Departamento,"", new { @class = " text-danger" })


[no name]

С какой стати вы воскрешаете семилетнего ребенка, уже ответившего на вопросы? Неужели эти бессмысленные реплики действительно так много значат для вас?

CHill60

-Неужели эти бессмысленные реплики действительно так много значат для тебя?.. очевидно, что нет, иначе они поняли бы, что теряют больше очков, чем получают, делая это :D

[no name]

Ну, чтобы быть справедливым, есть пара людей, которые болтаются вокруг, которые действительно думают, что эти реплики что-то значат. С одним я столкнулся вчера, а с другим давно не виделся. Но ходили слухи, что он все еще где-то поблизости. Кстати говоря, я тоже давно тебя не видел.

CHill60

Меня не было здесь несколько месяцев - личные дела. Время от времени я заглядывал к нему с телефона но все же рад был вернуться :-)

[no name]

Не беспокойтесь. По некоторым людям я скучаю ... а по некоторым нет :-)

CHill60

Фу! Надеюсь, я был первым ;-)

[no name]

Ну, я думаю, что вы ценный вкладчик, так что да.