Добавление столбца ссылки к ASP.NET GridView

Отклонение использования Оператора перехода программистам похоже на сообщение плотнику не использовать молоток, поскольку это Могло бы повредить стену, в то время как он вбивает гвоздь. Настоящий программист Знает, Как и Когда использовать GOTO. I’ve следовал позади некоторых из них, так называемый ‘Structured Programs’ I’ve видит такой Неприятный код только для избегания использования GOTO, что я мог стрелять в программиста. Хорошо, В защиту другой стороны, I’ve, замеченный некоторый реальный запутанный код также и снова, те программисты должны быть застрелены также.

Вот является всего один небольшой пример кода найденным I’ve.

  YORN = ''
  LOOP
  UNTIL YORN = 'Y' OR YORN = 'N' DO
     CRT 'Is this correct? (Y/N) : ':
     INPUT YORN
  REPEAT
  IF YORN = 'N' THEN
     CRT 'Aborted!'
     STOP
  END

-----------------------ИЛИ----------------------

10:  CRT 'Is this Correct (Y)es/(N)o ':

     INPUT YORN

     IF YORN='N' THEN
        CRT 'Aborted!'
        STOP
     ENDIF
     IF YORN<>'Y' THEN GOTO 10
20
задан Canavar 4 December 2009 в 23:14
поделиться

4 ответа

Вам необходимо изменить тип столбца с BoundColumn на столбец с гиперссылкой.

   <asp:hyperlinkfield headertext="NewsHeadline"
      datatextfield="NewsHeadline"
      datanavigateurlfield="NewsURL" 
      datanavigateurlformatstring="http://{0}" />

Помимо внесения этого изменения, вам необходимо убедиться, что вы выбираете URL-адрес или что-то, что вы можете использовать для создания ссылки на новостную статью. В приведенном выше примере я m при условии, что URL-адрес - это то, что вы можете получить из источника SQL. Если это идентификатор, просто введите оставшуюся часть URL-адреса следующим образом ... "~ / MyNewsPage.aspx? NewsID = {0}" ...

31
ответ дан 29 November 2019 в 23:23
поделиться

Вам нужно использовать поле гиперссылки вместо BoundField, например:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="SqlDataSource1" 
    EmptyDataText="There are no data records to display.">
    <Columns>
        <asp:HyperLinkField HeaderText="NewsHeadline" SortExpression="NewsHeadline" DataTextField="NewsHeadline" NavigateUrl="..." />
    </Columns>

3
ответ дан 29 November 2019 в 23:23
поделиться

Используйте вместо поля гиперссылки :

<asp:hyperlinkfield datatextfield="NewsHeadline"
        datanavigateurlfields="NewsID"
        datanavigateurlformatstring="~\newsdetails.aspx?Id={0}"  />
9
ответ дан 29 November 2019 в 23:23
поделиться

Как отмечали другие, HyperLinkField будет отлично работать. Но если вы хотите, чтобы вся строка была интерактивной, вы можете использовать настраиваемый серверный элемент управления, который реализует GridView, предложенный в сообщении SO «Сделать всю строку доступной для щелчка в сетке» .

Ознакомьтесь с вопрос, который я разместил на , как реализовать настраиваемый серверный элемент управления C # при его реализации.

Еще один вариант.

2
ответ дан 29 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: