2011-02-10 47 views
1

我有一個綁定到它的一些數據的列表視圖。asp.net vb listview在後面的代碼中連接數據項目

在這個數據是地址列。

我怎麼會去的代碼訪問的背後,所以我可以將它們連接成一個簡單的變量,並錯過了那個有,我有場無數據列這些數據項:

地址 地址1 鎮 縣 郵編

我沒有連接問題,只是訪問數據項。

感謝J.

修訂

我得到的數據經過了一個數據集,並將其綁定到ListView。

是否有可能在後面的代碼中訪問數據項來格式化或做任何我想要的東西,然後在列表視圖中顯示它,例如將地址字段連接成一個變量?

所以不是寫作:

的DataBinder.Eval(的Container.DataItem, 「地址」)& 「 」&的DataBinder.Eval(的Container.DataItem, 「地址1」)&「,」 &的DataBinder.Eval (Container.DataItem,「鎮」)等...

在實際的列表視圖我可以在代碼中的字符串變量中執行此操作,然後顯示列表視圖中的變量?

'select command 
    Dim cmdSchedule As SqlCommand = New SqlCommand() 
    cmdSchedule.Connection = keypadSQL 
    cmdSchedule.CommandText = "spSchedule" 
    cmdSchedule.CommandType = CommandType.StoredProcedure 

    'data adapter 
    Dim daSchedule As SqlDataAdapter = New SqlDataAdapter 
    daSchedule.SelectCommand = cmdSchedule 

    'data set 
    Dim dsSchedule As DataSet = New DataSet() 
    daSchedule.Fill(dsSchedule, "Schedule") 

    lvSchedule.DataSource = dsSchedule 
    lvSchedule.DataBind() 
    cmdSchedule.Dispose() 

回答

1

首先將您的項目放入ListView中的可訪問控件,如標籤或文字。

<asp:ListView ID="ListView1" runat="server"> 
    <ItemTemplate> 
     <asp:Label ID="lblAddress" runat="server" Text="<%= Eval("address") %>" /> 
    </ItemTemplate> 
</asp:ListView> 

然後,您可以遍歷項目並使用FindControl,逐個拉出每個字符串。

Dim items As List(Of ListViewDataItem) = ListView1.Items 
For Each item As ListViewDataItem In items 
    Dim strAddress As String = CType(item.FindControl("lblAddress"), Label).Text 
Next 

修訂

我認爲最好的辦法是將其格式化SQL存儲過程,並返回它作爲一個新的領域。事情是這樣的:

SELECT *, address + ', ' + address1 + ', ' + town ', ' + county + ', ' postcode AS fullAddress 
FROM ... 

然後,你只需要使用<%= DataBinder.Eval(Container.DataItem, "fullAddress") %>拿到格式的地址。只要您厭倦了潛在的注入攻擊(不確定原始地址輸入方法),甚至可以用SP中的HTML格式化它。

+0

感謝您的信息,雖然我不想顯示整個地址,因爲整個地方是將地址格式化爲字符串,然後將格式化的字符串顯示給用戶。 – JBoom 2011-02-10 12:37:19

相關問題