динамические выпадающие списки веб-форм - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть каскадные выпадающие списки, один для тем, а другой для разделов. Я надеялся, что смогу использовать всплывающие подсказки, чтобы показать описание каждой темы и раздела. Однако сначала я должен выбрать конкретную тему и / или раздел, чтобы отобразить всплывающую подсказку, а также единственное описание, отображаемое в нижней части раскрывающегося списка, независимо от того, выбрано оно или нет. Есть идеи, что я делаю не так?

Ниже показано, как я загружаю выпадающий список тем. Load_Topic1 () вызывается для метода Page_Load.

protected void Load_Topic1()
    {
        var topics = ReadTopics();

        foreach (var topic in topics)
        {
            var topicListItem = new ListItem(topic.Name, topic.Id.ToString());
            topic1.Items.Add(topicListItem);
            topic1.Attributes.Add("Title",topic.Description);
        }

        topic1.Items.Insert(0, new ListItem("--- Select Topic ---", "0"));
    }

Вот мои каскадные выпадающие списки:

<asp:UpdatePanel ID="updatePanel1" runat="server">
                        <ContentTemplate>
                            <asp:DropDownList ID="topic1" DataTextField="NAME" DataValueField="ID" OnSelectedIndexChanged="Load_Section1" AutoPostBack="True" AppendDataBoundItems="true" runat="server"/>
                            <asp:DropDownList ID="section1" DataTextField="NAME" DataValueFile="ID"  runat="server">
                                <asp:ListItem Text="--- Select Section ---" Value="0"></asp:ListItem>
                            </asp:DropDownList><br/>
                            <asp:RequiredFieldValidator runat="server" ID="topic1ReqVal" InitialValue="0" ControlToValidate="topic1" errormessage="Please select a topic"/>
                            <asp:RequiredFieldValidator runat="server" ID="section1ReqVal" InitialValue="0" ControlToValidate="section1" errormessage="Please select a section"/><br/>
                            </ContentTemplate>
                    </asp:UpdatePanel>

2-й выпадающий список или раздел1 получает информацию от этого метода:

 protected void Load_Section1(object sender, EventArgs e)
    {
        section1.Items.Clear();

        var sections = ReadForTopic(Guid.Parse(topic1.SelectedValue));

        foreach (var section in sections)
        {
            var sectionListItem = new ListItem(section.Name, section.Id.ToString());
            section1.Items.Add(sectionListItem);
            section1.Attributes.Add("Title", section.Description);
        }

        section1.Items.Insert(0, new ListItem("--- Select Section ---", "0"));
    }

1 Ответ

0 голосов
/ 08 ноября 2018

Вы добавляете атрибут только для раскрывающегося списка, а не для каждого элемента в раскрывающемся списке.

Что вам нужно сделать, это:

        foreach (var topic in topics)
        {
            var topicListItem = new ListItem(topic.Name, topic.Id.ToString());
            topicListItem.Attributes.Add("Title",topic.Description);
            topic1.Items.Add(topicListItem);

        }

И, конечно, то же самое для раздела. Это должно дать каждому элементу выбора ваш вариант и заголовок.

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...