Отклонение использования Оператора перехода программистам похоже на сообщение плотнику не использовать молоток, поскольку это Могло бы повредить стену, в то время как он вбивает гвоздь. Настоящий программист Знает, Как и Когда использовать 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
Вам необходимо изменить тип столбца с BoundColumn на столбец с гиперссылкой.
<asp:hyperlinkfield headertext="NewsHeadline"
datatextfield="NewsHeadline"
datanavigateurlfield="NewsURL"
datanavigateurlformatstring="http://{0}" />
Помимо внесения этого изменения, вам необходимо убедиться, что вы выбираете URL-адрес или что-то, что вы можете использовать для создания ссылки на новостную статью. В приведенном выше примере я m при условии, что URL-адрес - это то, что вы можете получить из источника SQL. Если это идентификатор, просто введите оставшуюся часть URL-адреса следующим образом ... "~ / MyNewsPage.aspx? NewsID = {0}" ...
Вам нужно использовать поле гиперссылки вместо 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>
Используйте вместо поля гиперссылки :
<asp:hyperlinkfield datatextfield="NewsHeadline"
datanavigateurlfields="NewsID"
datanavigateurlformatstring="~\newsdetails.aspx?Id={0}" />
Как отмечали другие, HyperLinkField будет отлично работать. Но если вы хотите, чтобы вся строка была интерактивной, вы можете использовать настраиваемый серверный элемент управления, который реализует GridView, предложенный в сообщении SO «Сделать всю строку доступной для щелчка в сетке» .
Ознакомьтесь с вопрос, который я разместил на , как реализовать настраиваемый серверный элемент управления C # при его реализации.
Еще один вариант.