Гиперссылка в Gridview привязка к неправильной строке на 1 - PullRequest
0 голосов
/ 10 мая 2011

Я искал и не нашел решения.

У меня есть Gridview, заполненный хранимой процедурой, которая вызывается DropdownList.Запрос работает нормально и дает мне таблицу со значениями.Вы увидите, что я запрограммировал текст в первом столбце для преобразования в гиперссылки.

Все работает нормально, за исключением того, что в первой строке (это не строка заголовка) нет ссылки.Фактически, адрес гиперссылки применяется к следующей строке.И таким образом это наталкивает остальные ссылки на один ряд.

Я обнаружил, что при отладке кажется, что ячейка в том, что должно быть первой гиперссылкой, имеет нулевое ("") значение.Когда я перехожу в IntelliSense, я обнаруживаю, что в строке действительно отображаются правильные свойства (в DataItem> Row> ItemArray есть текстовое значение).Серверная сторона C #

// hyperlink binding by row for first column in gridview
protected void gvReportList_RowDataBound(object sender, GridViewRowEventArgs e)
{ 
    //Changes text in the first column into HyperLinks
    HyperLinkField nameLink = gvReportList.Columns[0] as HyperLinkField;

    string linkPath = "http://inserted-address-here";
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
            //applies a unique suffix to the address depending on the link name
            HyperLink nameHl = (HyperLink)e.Row.Cells[0].Controls[0];
            string nameText = nameHl.Text;
            string linkSuffix = nameText.Replace(" ", "+");
            nameLink.NavigateUrl = linkPath + linkSuffix;
    }
}

Я могу только предположить, что это как-то связано с порядком, в котором я связываю гиперссылки с видом сетки.ИЛИ что это как-то связано с тем, что в первой строке указано нулевое значение, хотя там есть данные.

1 Ответ

0 голосов
/ 10 мая 2011
string linkSuffix = Datainder.Eval(e.DataItem, "Name").ToString().Replace(" ", "+");
nameLink.NavigateUrl = linkPath + linkSuffix; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...