Сохранение столбца гиперссылки Gridview после обратной передачи - PullRequest
0 голосов
/ 28 марта 2019

У меня есть столбец Gridview с гиперссылкой, созданный в коде позади (gridView_RowDataBound), который на постабке превращается в простой текст.Текст и NavigateUrl гиперссылки являются значением ячейки [0] динамически генерируемого вида сетки.

` protected void gridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        try
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                HyperLink link = new HyperLink();
                link.Target = "blank";
                link.Text = e.Row.Cells[0].Text;
                link.NavigateUrl = e.Row.Cells[0].Text;
                e.Row.Cells[0].Controls.Add(link);

            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }`

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

1 Ответ

0 голосов
/ 24 июля 2019

Для тех, кто сталкивается с той же проблемой, вот что я в конечном итоге делал при каждой загрузке страницы (postBack)

protected void GridViewDisplayDocument_RowCreated()
{
   var rowCount = GridViewDisplayDocument.Rows.Count;
   for (int i = 0; i < rowCount; i++)
   {
      var url = GridViewDisplayDocument.Rows[i].Cells[0].Text;
      if (url != string.Empty)
      {
         HyperLink link = new HyperLink();
         link.Target = "blank";
         link.Text = url;
         link.NavigateUrl =  url;

         GridViewDisplayDocument.Rows[i].Cells[0].Controls.Add(link);
       }
    } 
} 
...