Почему этот код не находит мое текстовое поле в моем ListView? - PullRequest
1 голос
/ 02 октября 2009

У меня есть список с EditTemplate. Если у меня есть один элемент в списке, следующий код выдает нулевое исключение:

if((TextBox)this.lvwColors.EditItem.FindControl("txtColor")) != null)
{
   this.Color =    
   ((TextBox)this.lvwColors.EditItem.FindControl("txtColor")).Text.Trim();
}

Это не выдает ошибку, если у меня есть два элемента в моем списке просмотра.

Другая странная вещь заключается в том, что он выдает ошибку только на рабочем сервере, но при локальном тестировании ошибка не появляется. Кто-нибудь знает, почему такое поведение может существовать?

Вот часть EditTemplate разметки:

<EditItemTemplate>          
    <asp:TextBox ID="txtColor" runat="server" 
                 Text='<%#   Eval("Color").ToString().Trim() %>'
</EditItemTemplate>

1 Ответ

1 голос
/ 02 октября 2009

Событие ListView.ItemEditing :

ListView:

 protected void yourListView_ItemEditing(Object sender, ListViewEditEventArgs e)
  {
    ListViewItem item = yourListView.Items[e.NewEditIndex];

    if((TextBox)item.FindControl("txtColor") != null)
    {
       this.Color =    
          ((TextBox)item.FindControl("txtColor")).Text.Trim();
    }

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