2013-04-25 135 views
4

在参考我的这个问题,如何创建一个超链接字段进行SQL查询

GridView Table 1 related to Table 2

我有一个GridView它看起来像这样的时刻,

enter image description here

这是SQL fiddle

问题:

如何用FruitTitle创建HyperLinkField并链接到水果网站?

这是我使用的时刻显示Types_of_Fruits_in_Crate的代码和完美的作品,

  BoundField theField = new BoundField(); 
      theField.DataField = "Types_of_Fruits_in_Crate"; 
      gv.Columns.Add(theField); 

要放什么

  HyperLinkField theField = new HyperLinkField(); 
      theField.DataTextField = 'Types_of_Fruits_in_Crate'; 
      theField.DataNavigateUrlFields = // not sure .... 
+0

+1好的格式化:) – 2013-04-25 16:16:50

回答

2

使用文字的控制,而不是超链接,然后尝试使用以下查询:

SELECT CrateTitle,CrateDescription,CrateID, 
stuff(
(
    SELECT '<a href=''' + [FruitWebsite] + ''' target=''_blank''>'+ [FruitTitle] +'</a>' 
    FROM fruits WHERE CrateID = t.CrateID FOR XML path('') 
),1,1,' ') Types_of_Fruits_in_Crate 
FROM (SELECT DISTINCT CrateTitle,CrateDescription,CrateID FROM fruits)t 
+0

+1,谢谢,但遗憾,因为它不工作,我想兄弟,它让我看到URL旁边fruitTitle的时候我只想fruitTitle作为超链接字段 – Mathematics 2013-04-26 10:01:48

+0

不应该只是告诉你FruitTitle作为超链接,你是否使用Literal控件并将其绑定到这个结果? – 2013-04-26 11:35:26

+0

没有为我工作,但我用这个,而不是,http://www.ashishblog.com/blog/nested-gridview-in-showhide-effect-using-c-net/ – Mathematics 2013-04-26 15:30:26

2

请尝试像下面,它会帮助你...

SQL FIDDLE:http://www.sqlfiddle.com/#!3/96a49/18

SQL:

SELECT CrateTitle,CrateDescription,CrateID, 
stuff(
(
    SELECT ',<a href=''' + [FruitWebsite] + ''' target=''_blank''>'+ [FruitTitle] +'</a>' FROM fruits WHERE CrateID = t.CrateID FOR XML path('') 
),1,1,' ') Types_of_Fruits_in_Crate 
FROM (SELECT DISTINCT CrateTitle,CrateDescription,CrateID FROM fruits)t 

此外,添加HTML编码=在你的代码FALSE则只有HTML功能反映在您的网格视图

C#:

BoundField theField = new BoundField(); 
    theField.DataField = "Types_of_Fruits_in_Crate"; 
    theField.HtmlEncode = false; 
    gv.Columns.Add(theField); 
+0

+1,谢谢,但对不起,因为它不工作,因为我想要先生,它显示我旁边的fruitTitle URL当我只想fruitTitle作为超链接字段 – Mathematics 2013-04-26 10:00:06

+0

我可能需要使用ASP:HyperLink标记而不是HTML – Mathematics 2013-04-26 10:19:07