【问题标题】:asp.net vb listview concatenate data items in code behindasp.net vb listview在后面的代码中连接数据项
【发布时间】:2011-02-10 11:27:56
【问题描述】:

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

在这个数据中是一个地址的列。

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

地址 地址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()

【问题讨论】:

    标签: asp.net vb.net listview


    【解决方案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 ...
    

    那么你只需要使用&lt;%= DataBinder.Eval(Container.DataItem, "fullAddress") %&gt; 来获取格式化的地址。只要您厌倦了潜在的注入攻击(不确定原始地址输入法),您甚至可以在 SP 中使用 HTML 对其进行格式化。

    【讨论】:

    • 感谢您的信息,虽然我真的不想显示整个地址,因为重点是将地址格式化为字符串,然后将格式化的字符串显示给用户。
    • 我一定是误解了你的问题。我只是以“地址”为例。实际上,每个字段都有不同的标签(即:地址 address1 镇县邮政编码)。或许如果你告诉我最终目标,我能帮上多少忙?
    • 尼克,我已经更新了我的问题,希望我已经解释了我正在尝试做的更多示例。
    • 啊,是的,我误解了你的问题。看看我的更新,看看你的想法。我能想到的唯一其他选择是在绑定之前闯入填充的数据集,循环遍历 DataRows。我更喜欢 SQL SP 的想法。
    猜你喜欢
    • 2018-01-28
    • 2012-08-08
    • 2013-10-06
    • 1970-01-01
    • 2013-09-12
    • 2016-05-21
    • 2010-10-07
    • 2016-09-27
    • 1970-01-01
    相关资源
    最近更新 更多