Объединить несколько источников данных в один ретранслятор ASP.NET? - PullRequest
3 голосов
/ 09 марта 2011

У меня есть такой повторитель:

<asp:Repeater ID="rptrRooms" runat="server" OnItemCommand="Choose_Room">
  <ItemTemplate>
        <asp:Button ID="btnChooseRoom" runat="server"
        CommandName="<%# Container.DataItem.ToString %>" Text="<%# Container.DataItem %>"
         />
    </ItemTemplate>
</asp:Repeater>

Я привязываю источник данных к повторителю примерно так:

   Dim dbRooms As New pbu_housingEntities
        Dim gender As String = Session("gender").ToString
        Dim hall As String = CStr(Session("hall"))
        Dim selectedRooms = (From sh In dbRooms.Rooms _
                             Where sh.gender = gender _
                             Where sh.current_occupancy < sh.max_occupancy _
                             Where sh.is_available = True _
                             Where sh.building_name = hall _
                             Select sh.room1
                             )
        rptrRooms.DataSource = selectedRooms
        rptrRooms.DataBind()

Проблема в том, что я также хочу показать зрителюдоступно количество мест в номере.Но для этого необходимо каким-то образом использовать current_occupancy / max_occupancy или выполнить вычисление (например, max_occupancy - current_occupancy = actual_available), а затем вернуть его вместе с комнатой.

Конечный результат, который я ищу, - возвращатькомната в кнопке управления с текстом, который выглядит так: «Комната 1 - 2 открыт», «Комната 8 - 1 открыт» и т. д.

Ответы [ 2 ]

3 голосов
/ 13 марта 2011

Спасибо davemackey :) Как-то так.

Выбрать новый с {sh.room1, .actual_available = sh.max_occupancy - sh.current_occupancy}

0 голосов
/ 12 марта 2011

Комментарий Amit_g выше был ключевым. Мне нужно было вставить в оператор выбора actual_available = sh.max_occupancy - sh.current_occupancy. Если Амит отправит ответ, я поменяю «правильный» ответ на Амит, чтобы дать вам оценку за ответ. :)

...