Не очень хорошо использовать asp listbox - PullRequest
3 голосов
/ 16 февраля 2012

Все, что я хочу сделать, это просто нажать кнопку, и текст в текстовом поле автоматически добавляется в качестве элемента в списке.Разве это не должно быть прямым?Во время отладки элемент добавляется, и я вижу текст, просматривая ListBox1.Items [0], но на веб-странице ничего не отображается.У меня была та же проблема, которую я не решил, в консольном приложении!Кто-нибудь может подсказать мне, что я делаю не так?

protected void Button1_Click(object sender, EventArgs e)
    {
        ListBox1.Items.Add(new ListItem(TextBox1.Text));
    }

Большое спасибо

Редактировать:

В прошлом проекте я использовал свойство DataSource, которое отлично работало.Мне еще никогда не удавалось использовать добавленные предметы!Может быть, есть какое-то обновление или обновление?

Код страницы:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

<asp:ListBox ID="ListBox1" runat="server" Height="150px" Width="295px"></asp:ListBox>

<asp:UpdatePanel ID="updatePanel1" runat="server">
    <ContentTemplate>
        <asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click" />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </ContentTemplate>
</asp:UpdatePanel>

Ответы [ 2 ]

4 голосов
/ 16 февраля 2012

Похоже, ваш список находится за пределами панели обновления. Вставьте его в панель обновления:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
    <asp:DropDownList ID="DropDownList1" runat="server">
    </asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="AddItem" />
</ContentTemplate>
</asp:UpdatePanel>
4 голосов
/ 16 февраля 2012

Вы должны переместить ListBox в UpdatePanel, иначе он не будет обновлен.

Причина в том, что ASP.NET отправляет весь HTML-код UpdatePanel обратно клиенту.Поскольку ListBox не является частью UpdatePanel, он не будет обновляться.

...