2009-06-12 170 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()