Добрый день всем!
Вопрос такой. Есть GridView и в нем колонка типа HyperLinkField
<asp:HyperLinkField HeaderText="NAME" DataTextField="NAME" DataTextFormatString="{0}"
DataNavigateUrlFields="YearId,QuarterId,MonthId,PeriodId,WeekId,RequestId,CenterId,DivisionId,StationId"
DataNavigateUrlFormatString="~\request6.aspx?YearId={0}&QuarterId={1}&MonthId={2}&PeriodId={3}&WeekId={4}&RequestId={5} &CenterId={6}&DivisionId={7}&StationId={8}" >
<ControlStyle Width="128px" />
<ItemStyle HorizontalAlign="Left" />
</asp:HyperLinkField>
Грид заполняется из таблицы БД. Ячейки в Гриде не генерируются автоматически.
Необходимо сделать так чтобы HyperLinkField при каком то условии выводил то ссылку то просто текст — без навигации (т.е. выводил бы информацию как обычный TextField).
Пытаюсь в коде сделать вот так вот для вывода обычным текстом:
GridView2.DataSource = dataTable1;
GridView2.DataBind();
GridView2.Visible = true;
if (nCenter != -1 && nDivision != -1 && nStation == -1)
{
for (int i = 0; i < GridView2.Rows.Count; i++)
{
((HyperLinkField)((DataControlFieldCell)GridView2.Rows[i].Cells[0]).ContainingField).DataNavigateUrlFields = null;
((HyperLinkField)((DataControlFieldCell)GridView2.Rows[i].Cells[0]).ContainingField).DataNavigateUrlFormatString = "";
}
}
Получается, что поле Name выводится все равно ссылкой, но надо бы вывести с обычным текстом...
Хотя при повторном выполнении уже выводится текст...
Посоветуйте как лучше реализовать вот такую вот возможность?
пока нарыл вот такой вариант:
GridView2.DataSource = dataTable1;
GridView2.DataBind();
if (nCenter == -1 && nDivision == -1 && nStation == -1)
{
}
else if (nCenter != -1 && nDivision == -1 && nStation == -1)
{
}
else if (nCenter != -1 && nDivision != -1 && nStation == -1)
{
for (int i = 0; i < GridView2.Rows.Count; i++)
{
((HyperLinkField)((DataControlFieldCell)GridView2.Rows[i].Cells[0]).ContainingField).DataNavigateUrlFields = null;
((HyperLinkField)((DataControlFieldCell)GridView2.Rows[i].Cells[0]).ContainingField).DataNavigateUrlFormatString = "";
}
GridView2.DataBind();
}
GridView2.Visible = true;
Только не знаю корректно ли двараза вызывать DataBind...
Здравствуйте, <Аноним>, Вы писали:
А>пока нарыл вот такой вариант:
А>А>GridView2.DataSource = dataTable1;
А> GridView2.DataBind();
А> if (nCenter == -1 && nDivision == -1 && nStation == -1)
А> {
А> }
А> else if (nCenter != -1 && nDivision == -1 && nStation == -1)
А> {
А> }
А> else if (nCenter != -1 && nDivision != -1 && nStation == -1)
А> {
А> for (int i = 0; i < GridView2.Rows.Count; i++)
А> {
А> ((HyperLinkField)((DataControlFieldCell)GridView2.Rows[i].Cells[0]).ContainingField).DataNavigateUrlFields = null;
А> ((HyperLinkField)((DataControlFieldCell)GridView2.Rows[i].Cells[0]).ContainingField).DataNavigateUrlFormatString = "";
А> }
А> GridView2.DataBind();
А> }
А> GridView2.Visible = true;
А>
А>Только не знаю корректно ли двараза вызывать DataBind...
подпишитесь на событие OnDataBinding/ItemCreated (точное название уже забыл
но направление такое ), там будут доступны строки и cell, и там убирайте ссылки.
... << RSDN@Home 1.2.0 alpha 4 rev. 1270>>
Здравствуйте, cadet354, Вы писали:
C>Здравствуйте, <Аноним>, Вы писали:
А>>пока нарыл вот такой вариант:
А>>А>>GridView2.DataSource = dataTable1;
А>> GridView2.DataBind();
А>> if (nCenter == -1 && nDivision == -1 && nStation == -1)
А>> {
А>> }
А>> else if (nCenter != -1 && nDivision == -1 && nStation == -1)
А>> {
А>> }
А>> else if (nCenter != -1 && nDivision != -1 && nStation == -1)
А>> {
А>> for (int i = 0; i < GridView2.Rows.Count; i++)
А>> {
А>> ((HyperLinkField)((DataControlFieldCell)GridView2.Rows[i].Cells[0]).ContainingField).DataNavigateUrlFields = null;
А>> ((HyperLinkField)((DataControlFieldCell)GridView2.Rows[i].Cells[0]).ContainingField).DataNavigateUrlFormatString = "";
А>> }
А>> GridView2.DataBind();
А>> }
А>> GridView2.Visible = true;
А>>
А>>Только не знаю корректно ли двараза вызывать DataBind...
C>подпишитесь на событие OnDataBinding/ItemCreated (точное название уже забыл но направление такое ), там будут доступны строки и cell, и там убирайте ссылки.
Спасибо, кстати почему то совсем выпустил из головы такой вариант, хотя недавно читал что футер мона обновлять таким же образом...