2009-12-06 1 views
0

Это была бы простая таблица на странице, в которой есть несколько исходных ячеек, и должен вводиться другой пользователь. Я использую DataList с ItemTemplate:Извлечь данные из DataList

<ItemTemplate> 
    <asp:TextBox ID="CellTextBox" runat="server" Text='<%# Bind("Cell") %>' /> 
</ItemTemplate> 

В коде я переопределить DataBind() этого элемента управления:

public override void DataBind() 
     { 
      MyDataList.DataSource = dataTable; 
      MyDataList.DataBind(); 
     } 

Сейчас он не работает. Пользователь вводит некоторые ячейки и нажимает кнопку отправки, но dataTable (в методе, который передает эту кнопку OnClick) не содержит данных пользователя - только начальный. Что мне делать?

+0

привет, может быть, я ошибаюсь, но не должен использовать Eval («Cell») вместо Bind («Cell»), если вы хотите отобразить это привязанное значение? – Marko

ответ

0

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

public void Page_Load(Object sender, EventArgs e) 
{ 
    if (!this.IsPostBack) 
    { 
    myDataList.DataSource = myManager.GetDataTable(); 
    myDataList.DataBind(); 
    } 
} 

Таким образом, данные будут связаны только с контролем на intial загрузки страницы, а не последующие запросы после обратно. Page_ Load будет вызываться по каждому запросу, и это означает, что и код в вашей Page_Load будет выполняться до вашего метода нажатия кнопки. Поэтому вам нужно проверить свойство IsPostBack на вашей странице, чтобы узнать, является ли текущий запрос отправкой. Если это так, то не связывайте свои данные с вашим контролем, потому что вы потеряете то, что пользователь ввел.

+0

Извините, я получаю слишком мало информации. Есть данные – Sevina

+0

Я сомневаюсь, что элементы управления в ItemTemplate (а не EditItemTemplate) могут использовать #Bind и могут извлекать введенные пользователем данные. – Sevina

+0

Похоже, что из-за использования режима отладки Session/In таблица переходит из состояния сеанса. Но как мне это сделать? – Sevina

Смежные вопросы