2011-02-10 2 views
1

У меня есть список с привязанными к нему данными.asp.net vb listview объединяет элементы данных в коде за

В этих данных находятся столбец для адреса.

Как бы я идти о получении доступа к этим элементам данных в коде позади, так что я могу сцепить их в одну простых переменные и пропустить столбцы, которые не имеют данных, у меня есть поля:

адрес address1 город района почтовый индекс

У меня нет проблем с конкатенацией, просто получающей доступ к элементам данных.

Благодаря J.

ОБНОВЛЕНО

Я получаю данные из набора данных с помощью и привязки его к ListView.

Возможно ли получить доступ к элементам данных в коде для форматирования или сделать то, что я хочу с ними, а затем показать его в виде списка, например, объединить поля адреса в одну переменную?

поэтому вместо того, чтобы писать:

DataBinder.Eval (Container.DataItem, "адрес") & " "& DataBinder.Eval (Container.DataItem, "адрес1") &"," & 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

Сначала поставьте свои элементы в доступные элементы управления в 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") %>, чтобы получить отформатированный адрес. Вы даже можете отформатировать его с помощью HTML в SP, пока вы устали от потенциальных инъекций (не уверены в исходном методе ввода адреса).

+0

Спасибо за информацию, хотя я действительно не хочу отображать весь адрес, поскольку цель состоит в том, чтобы отформатировать адрес в виде строки, а затем отобразить отформатированную строку пользователю. – JBoom

+0

Должно быть, я не понимаю ваш вопрос. Я использовал только «адрес» в качестве примера. На самом деле у вас будут разные метки для каждого поля (например: адрес address1 почтовый индекс графства города). Может быть, если бы ты сказал мне конечную цель, я мог бы помочь немного лучше? –

+0

Ник, я немного обновил свой вопрос, надеюсь, я объяснил немного больше пример того, что я пытаюсь сделать. – JBoom

Смежные вопросы