как работает этот код (или проект)? (редактируемый ASP Gridview) - PullRequest
0 голосов
/ 01 декабря 2011

Я новичок в ASP.NET, у меня было бы редактируемое представление сетки в asp.net с использованием C #, я нашел это редактируемое представление сетки ( База данных , Проект ) в проекте кода, но я не понимаю, как его работа специально эта часть кода: `

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
     DataRowView drv = e.Row.DataItem as DataRowView;
       if (e.Row.RowType == DataControlRowType.DataRow)
      {
          if ((e.Row.RowState & DataControlRowState.Edit) > 0)
          {
              DropDownList dp= (DropDownList )e.Row .FindControl ("DropDownList1");
              DataTable dt = load_department();
              for (int i = 0; i < dt.Rows.Count; i++)
           {
               ListItem lt = new ListItem();
               lt.Text = dt.Rows[i][0].ToString();
               dp.Items.Add(lt);
           }
              dp.SelectedValue = drv[3].ToString();
              RadioButtonList rbtnl = (RadioButtonList)e.Row.FindControl("RadioButtonList1");
              rbtnl.SelectedValue = drv[5].ToString();
              CheckBoxList chkb = (CheckBoxList)e.Row.FindControl("CheckBoxList2");
              chkb.SelectedValue = drv[6].ToString();    
          }              
       }
   }

` Почему она / он делает это ??

Ответы [ 2 ]

4 голосов
/ 01 декабря 2011

Событие RowDataBound возникает, когда вы привязываете сетку к источнику данных, например, к источнику данных.

Для каждой строки в файле данных этот код будет выполняться и будет работать в зависимости от значений в этомrow, поместите значение в каждый столбец вида сетки.

FindControl используется для поиска элемента управления со специальным именем в этой строке вида сетки - запомните, он будет повторяться много раз для стольких строккак у вас есть.

Как только элемент управления найден, значение устанавливается.

Вы эффективно настраиваете каждую строку вида сетки для каждой строки данных в вашем источнике данных.

Взгляните на http://msdn.microsoft.com/en-us/magazine/cc163933.aspx, чтобы получить представление о намерениях, стоящих за этим элементом управления.

1 голос
/ 01 декабря 2011

** RowDataBound Происходит, когда строка данных связана с данными в элементе управления GridView.

** DataControlRowState Указывает состояние строки в элементе управления данными, например: редактировать, вставлять, выбирать и т. Д.

** RowState Получает текущее состояние строки с учетом ее отношения к DataRowCollection.

теперь в этом if condition ваш выпадающий список (DropDownList1) заполнен, а RadioButton и Checkebox устанавливают свои выбранные значения.

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