2009-06-12 122 views
-1
<data> 
<food> 
<id>1</id> 
<name>asparagus</name> 
<catlog>7190</catlog> 
</food> 
<food> 
<id>2</id> 
<name>almonds</name> 
<catlog>7190</catlog> 
</food> 
<food> 
<id>3</id> 
<name>asparagus</name> 
<catlog>7192</catlog> 
</food> 
<food> 
<id>4</id> 
<name>asparagus</name> 
<catlog>7193</catlog> 
</food> 
</data> 

我想获得独特的catlogs,所以从这个名单,我想只提取7190,7192和7193.我有把它变成一个下拉列表通过使用脚本:如何获得独特的元素?

DropDownList1.DataSource = dv 
     DropDownList1.DataBind() 

但我需要它得到唯一的价值。

回答

2

看看LINQ to XML!有了这个功能,您可以直接查询一个xml blob,但比使用XPATH(您也可以使用它来完成相同的任务)更轻松。

然后,您可以将您的数据源指向您的XML blob上来自LINQ查询的结果。

+0

嘿u能走在我通过它,请我是初学者使用asp.net – 2009-06-12 19:08:32

0

请尝试以下

Public Function Unique(ByVal doc As XDocument) As IEnumerable(Of String) 
    Return doc...<catalog>.Select(Function(x) CType(x,Integer)).Distinct() 
End Function 

快速注:CTYPE开始会觉得奇怪,但因为XElement类定义了一个明确的转换操作符的许多价值类型,包括整数,它的工作。

+0

嘿,你能告诉我在VB? – 2009-06-12 19:07:34

+0

@alex,那就是VB – JaredPar 2009-06-12 19:09:23

0

LINQ是首选方式,我认为,但一个又一个option是:

Dim newTable As DataTable = dataView.ToTable(True, "Category") 
DropDownList1.DataSource = newTable 
DropDownList1.DataBind()