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

У нас есть веб-форма ASP.Net/VB.Net, содержащая выпадающий список в разметке файла aspx. Существует также DataSet, созданный с помощью конструктора DataSet.

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

Можете ли вы показать мне образец разметки и/или кода VB.Net, который требуется для заполнения раскрывающегося списка данными DataSet?


person Emad-ud-deen    schedule 04.12.2012    source источник


Ответы (2)


<asp:DropDownList ID="MyDropDownList" runat="server" DataTextField="SomeString" DataValueField="SomeUniqueId" />

Код программной части:

protected void Page_Load(object sender, EventArgs e)
{
    var myDataSet = new DataSet(); // replace with your dataset
    MyDropDownList.DataSource = myDataSet;
    MyDropDownList.DataBind();
}

ВБ.Нет:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Dim aDataSet As DataSet
    MyDropDownList.DataSource = aDataSet
    MyDropDownList.DataBind()
End Sub

А вы видите в разметке "DataTextField" и "DataValueField"? Там вы указываете имена полей, которые хотите использовать в качестве идентификатора (значение данных) и для отображения (текст данных) в раскрывающемся списке.

Вот пример:

Разметка

<body>
    <form id="form1" runat="server">
        <div>
            Fruits
            <asp:DropDownList ID="DropDownListWithFruits" runat="server" DataTextField="FruitName" DataValueField="FruitId" />
        </div>
    </form>
</body>

Код позади

protected void Page_Load(object sender, EventArgs e)
{
    var myDataSet = new DataSet();
    var table1 = new DataTable();
    table1.Columns.Add("FruitName");
    table1.Columns.Add("FruitId");
    table1.Rows.Add("Apple", 1);
    table1.Rows.Add("Banana", 2);
    table1.Rows.Add("Grapefruit", 3);

    myDataSet.Tables.Add(table1);

    DropDownListWithFruits.DataSource = myDataSet;
    DropDownListWithFruits.DataBind();
}
person RickardN    schedule 04.12.2012
comment
Спасибо всем за полезные ответы. Я буду пробовать этот сегодня. :-) - person Emad-ud-deen; 04.12.2012
comment
Это будет отображать System.Data.DataRowView для каждой строки! - person Marco Marsala; 18.06.2015
comment
@bleemboy о чем ты? Он не будет. Пожалуйста, не минусуйте, если вы ошибаетесь. См. мой обновленный (рабочий) пример кода. - person RickardN; 02.06.2016

ComboboxName.DataSource =ВашеИмяНабораДанных

ComboboxName.DataValueField =Имя поля, для которого вы хотите вернуть выбранное значение

например "ИД"

ComboboxName.DataTextField =Имя поля, которое вы хотите просмотреть в раскрывающемся списке

например "Имя"

ComboboxName.DataBind()

person nayef harb    schedule 04.12.2012