Я искал и не нашел решения.
У меня есть 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;
}
}
Я могу только предположить, что это как-то связано с порядком, в котором я связываю гиперссылки с видом сетки.ИЛИ что это как-то связано с тем, что в первой строке указано нулевое значение, хотя там есть данные.