2011-02-10 52 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

相关问题