ASP.NET GridView EditTemplate и найти элемент управления - PullRequest
4 голосов
/ 06 января 2010

В GridView мы используем кнопку редактирования. После нажатия кнопки редактирования Элементы управления в шаблоне редактирования будут отображаться в одной строке с кнопкой обновления. В этой строке есть два элемента управления выпадающего списка.

Поток процесса:

элементы управления: d1 и d2

d1 использует sqldatasource для отображения элементов: работает нормально.

d2 использует код за кодом для загрузки элемента на основе выбранного значения в d1: не работает

Как найти элемент управления в шаблоне редактирования для отображения значения элемента для d2?

Ответы [ 2 ]

6 голосов
/ 06 января 2010

Я получил ответ.

protected void GridView1_PreRender(object sender, EventArgs e)
 {
  if (this.GridView1.EditIndex != -1)
   {
     Button b = GridView1.Rows[GridView1.EditIndex].FindControl("Button1") as Button;
     if (b != null)
      {
      //do something
      }
   }
 }
3 голосов
/ 06 января 2010

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

Итак, вы можете использовать событие 'RowDataBound'.

  void MyGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {
    if(e.Row.RowType == DataControlRowType.DataRow
            && e.Row.RowIndex == MyGridView.EditIndex)
    {
      DropDownList d1 = e.Row.FindControl("d1") as DropDownList;
      if(d1 == null) return;
      //Now you have the drop down. Use it as you wish.
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...