Поля ListView не публикуются - PullRequest
0 голосов
/ 07 января 2010

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

        <asp:ListView runat="server" ID="lv_bar" EnableViewState="true">
            <LayoutTemplate>
                <table>
                    <tr>
                        <th>Foo</th>
                    </tr>
                    <tr runat="server" id="itemPlaceholder"></tr>
                </table>
            </LayoutTemplate>
            <ItemTemplate>
                <tr>
                    <td><asp:LinkButton ID="lb_delete" CausesValidation="false" runat="server" Text="Del" /></td>
                    <td><asp:TextBox id="txt_foo" runat="server" /></td>
                </tr>
            </ItemTemplate>
        </asp:ListView>
        <asp:LinkButton ID="lb_add" CausesValidation="false" runat="server" Text="Add" />

А затем вот соответствующий материал для кода:

protected void Page_Load(object sender, EventArgs e)
{
    lb_chapter_add.Click += lb_chapter_add_Click;

    if (!IsPostBack)
    {
            lv_chapters.DataSource = new List<Foo>() { new Foo() { Name = "harbl"} };
            lv_chapters.DataBind();
        }
    }

void lb_add_Click(object sender, EventArgs e)
{
    foreach (ListViewDataItem item in lv_bar.Items)
    {
        var txt_foo = (TextBox)item.FindControl("txt_foo");
        Response.Write("foo: " + txt_foo.Text);
    }
    Response.Write("<br />the end");
    Response.End();
}

Но то, что я вижу, когда вводю какой-то текст в txt_foo и нажимаю lb_add, это просто "конец". Что я тут не так делаю?

1 Ответ

1 голос
/ 07 января 2010

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

В результате нажатия кнопки вы создаете обратную передачу, а lv_chapters не содержит никаких элементов. Установите точку останова в строке, где находится foreach, и вы увидите, что lv_chapters.Items в null или что его свойство Count возвращает 0.

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