получить значение из текстового поля в репитере asp.net c #

Я пытался заставить это работать уже пару часов, но ничто из Google не помогло мне исправить проблема.

У меня есть очень простой элемент управления повторителем:

   <asp:Panel ID="userDefDiv" Visible="false" runat="server">
                <asp:Repeater ID="userDefRepeater" EnableViewstate="false" runat="server">
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" EnableViewState="false"></asp:TextBox><br/>
                    </ItemTemplate>
                </asp:Repeater>
            </asp:Panel>

панель userDefDiv находится внутри другой панели, которая находится внутри contentPLaceHolder. родительская панель для userDefDiv НЕ имеет "enableviewstate =" false "".

Итак. Все на этой странице происходит после пары ссылок linkbuttons_click. поэтому во время page_load ничего не происходит. И после того, как я нажму другую кнопку ссылки, я хочу получить данные из разных текстовых полей, которые находятся в репитере.

Код C #:

Это код для создания всех элементов повторителя.

public void createUserDef()
{
        DataTable userDefData;
        userDefData = ..... (data from Database.)

            userDefDiv.Visible = true;
            userDefRepeater.DataSource = userDefData;
            userDefRepeater.DataBind();
}

Код для кнопки ссылки:

protected void linkButton_Click(object sender, EventArgs e)
{
    createUserDef();

    Label2.Visible = true;
    foreach (RepeaterItem item in userDefRepeater.Items)
    {
        TextBox box = (TextBox)item.FindControl("TextBox1");
        string b = box.Text;
        Label2.Text += b + " . ";
    }
}

Как вы видите, я снова создаю ретранслятор во время щелчка. Но единственное, что я могу прочитать в label2. представляет собой число «.», поставленное на точку для каждого текстового поля. но текст из текстового поля пуст .. Что я делаю не так ??

спасибо за чтение! Маттиас

РЕШЕНИЕ:

  1. добавьте EnableVIewState = "true" в текстовое поле и повторитель.

  2. Не вызывайте dataBind () до получения значений.

Спасибо!

5
задан Easyrider 9 December 2011 в 15:34
поделиться