asp.net vb listview将代码中的数据项连接起来

时间:2011-02-10 11:27:57

标签: asp.net vb.net listview

我有一个列表视图,其中绑定了一些数据。

在此数据中是地址列。

如何在代码中访问这些数据项,以便将它们连接成一个简单的变量并错过没有数据的列,我有字段:

地址 地址1 镇 县 邮政编码

我只是访问数据项时连接没有问题。

谢谢J。

已更新

我通过数据集获取数据并将其绑定到列表视图。

是否可以访问后面的代码中的数据项来格式化或做我想要的任何事情然后在列表视图中显示它,例如,将地址字段连接成一个变量?

所以不要写:

DataBinder.Eval(Container.DataItem,“address”)& “,”& DataBinder.Eval(Container.DataItem,“address1”)& “,”& DataBinder.Eval(Container.DataItem,“town”)等......

在实际列表视图中,我可以在字符串变量后面的代码中执行此操作,然后在列表视图中显示该变量吗?

    '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 个答案:

答案 0 :(得分: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格式化它,只要你厌倦了潜在的注入攻击(不确定原始地址输入法)。