Я уверен, что это обычная вещь, но поиски ничего не придумали. Возможно, я прошу об этом неправильно, но ...Как получить данные из другой таблицы с помощью ListView?
У меня есть ListView
, который отображает данные из таблицы Message
(например: MessageList.DataSource = GetAllMessages()
). Внутри этой таблицы находится внешний ключ ImageID
, который относится к таблице Image
. Image
имеет столбец Path
, который мне нужно прикрепить к моему DataSource
, прежде чем я позвоню DataBind()
в мой список. Есть ли способ подключить Path
к моему списку всех сообщений, убедившись, что все выстроено на основе ImageID
?
Другими словами, я показываю список сообщений, содержащих картинки, и мне нужно знать путь к изображению, чтобы я мог его показать. Я хочу установить свойство ImageUrl
asp:ImageButton
в пределах моего ListView
до '<%# DataBinder.Eval(Container.DataItem, "Path") %>'
, но столбец «Путь» не существует в Message
до привязки данных. Как убедиться, что функция Eval
имеет столбец Path
для привязки? Я был бы признателен за любое направление, спасибо за чтение.
EDIT - Вот некоторый код, чтобы лучше объяснить, как все настроено
Вот мой код, чтобы получить все сообщения
public static List<Message> GetAll()
{
List<Message> messages = new List<Message>();
try
{
command = GetCommand("SelectAllMessages");
reader = command.ExecuteReader();
while (reader.Read())
{
messages.Add(PopulateMessage(reader));
}
}
catch (Exception ex)
{
throw;
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}
return messages;
}
И вот я отображения их в моей ListView
MessageList.DataSource = Message.GetAll(); // This is where I need to join
MessageList.DataBind();
Несомненно, есть способ присоединиться к Message.GetAll()
и Image.GetAll()
на основе ImageID
, и только добавьте столбец Path
в Message.GetAll()
.
Да, это именно то, что я пытаюсь сделать. Есть ли у вас предпочтительный метод или пример кода, который вы хотите поделиться? – TestWell
Как вы получаете данные из таблицы Messages? Можете ли вы отправить код «GetAllMessages()»? – jomargon
Просто сделал, проверьте выше. Мне не представляется возможным изменить код 'GetAll(), мне просто нужно, чтобы он возвращал сообщения. Я хотел бы добавить столбец 'Path' вне этого кода, чтобы« Сообщения »были отделены от« Images » – TestWell