none
WebGrid quando selecionada uma linha trazer "detalhes" do produto RRS feed

  • Pergunta

  • Bom dia, estou com uma dúvida, espero que alguém possa me ajudar.

    Eu tenho uma WebGrid de pedidos e quando selcionar um pedido eu gostaria que me retorna-se os detalhes daquele pedido, assim como a descrição do produto, quantidade...etc.

    @ModelType IEnumerable(Of Intranet.Models.Pedido)@code
           
       @Code
        Dim gridItem = New WebGrid(Model, rowsPerPage:=5, selectionFieldName:="SelectedRow")
           @gridItem.GetHtml(tableStyle:="webgrid",
           headerStyle:="webgrid-header",
           footerStyle:="webgrid-footer",
           alternatingRowStyle:="webgrid-alternating-row",
           rowStyle:="webgrid-row-style",
           selectedRowStyle:="webgrid-selected-row",
           columns:=gridItem.Columns(
           gridItem.Column("IDPedido", header:="IDPedido"),
           gridItem.Column("Funcionarios.Nome", header:="Funcionário"),
           gridItem.Column("Clientes.Nome", header:="Cliente"),
           gridItem.Column(header:="Selecionar", style:="text-align-center", format:=Function(item) item.GetSelectLink(New:=item.IDPedido)),
           gridItem.Column("", header:="Ação", style:="webgrid-alterar", format:=Function(item) Html.Raw(String.Format("<a href={0}> <img src={1}/> </a>", Url.Action("Details", "Pedido", New With {.id = item.IDPedido}), Url.Content("~/imagens/visualizarLeg.png"))))))
    
        If (gridItem.HasSelection) Then
            RenderPage("~/Views/Pedido/PedidoSelecionado.vbhtml",  New With {PedidoProduto = gridItem.SelectedRow})
        End If
     End Code


    Eu não estou conseguindo usar este método porque meu ModelType não é o mesmo da View que pretendo utilizar, queria "setar" o retorno da minha grid de "PedidoProduto" que tem outra Model e outro Controller.

    @ModelType IEnumerable(Of Intranet.Models.Pedido)


    If (gridItem.HasSelection) Then
            RenderPage("~/Views/Pedido/PedidoSelecionado.vbhtml",  New With {PedidoProduto = gridItem.SelectedRow})
        End If

    Meu projeto

    Alguém pode me ajudar? Desde ja agradeço!




    segunda-feira, 6 de agosto de 2012 16:34

Respostas

  • Resolvido!

    Se alguém tiver o mesmo problema eu resolvi da seguinte forma.

    Criei duas Web Grid, quando selecionado o item na primeira grid e ele lista os produtos na segunda grid:

    @Code
        Dim gridItem = New WebGrid(Model, rowsPerPage:=5, selectionFieldName:="SelectedRow")
           @gridItem.GetHtml(tableStyle:="webgrid",
           headerStyle:="webgrid-header",
           footerStyle:="webgrid-footer",
           alternatingRowStyle:="webgrid-alternating-row",
           rowStyle:="webgrid-row-style",
           selectedRowStyle:="webgrid-selected-row",
           columns:=gridItem.Columns(
           gridItem.Column("IDPedido", header:="IDPedido"),
           gridItem.Column("Funcionarios.Nome", header:="Funcionário"),
           gridItem.Column("Clientes.Nome", header:="Cliente"),
           gridItem.Column("Selecionado", header:="Selecionar", style:="text-align-center", format:=Function(item) item.GetSelectLink()),
           gridItem.Column("", header:="Ação", style:="webgrid-alterar", format:=Function(item) Html.Raw(String.Format("<a href={0}> <img src={1}/> </a>", Url.Action("Details", "Pedido", New With {.id = item.IDPedido}), Url.Content("~/imagens/visualizarLeg.png"))))))
    End Code
    <h2>Pedido Produto</h2>
    @Code
        If gridItem.HasSelection Then
            Dim p = gridItem.SelectedRow.Value.pedidoprodutos
        Dim gridItem2 = New WebGrid(p, rowsPerPage:=5, selectionFieldName:="SelectedRow")
        @gridItem2.GetHtml(tableStyle:="webgrid")
    
      End If 
    End Code


    • Marcado como Resposta Paulo M Dalbosco terça-feira, 7 de agosto de 2012 12:26
    terça-feira, 7 de agosto de 2012 12:26

Todas as Respostas

  • Resolvido!

    Se alguém tiver o mesmo problema eu resolvi da seguinte forma.

    Criei duas Web Grid, quando selecionado o item na primeira grid e ele lista os produtos na segunda grid:

    @Code
        Dim gridItem = New WebGrid(Model, rowsPerPage:=5, selectionFieldName:="SelectedRow")
           @gridItem.GetHtml(tableStyle:="webgrid",
           headerStyle:="webgrid-header",
           footerStyle:="webgrid-footer",
           alternatingRowStyle:="webgrid-alternating-row",
           rowStyle:="webgrid-row-style",
           selectedRowStyle:="webgrid-selected-row",
           columns:=gridItem.Columns(
           gridItem.Column("IDPedido", header:="IDPedido"),
           gridItem.Column("Funcionarios.Nome", header:="Funcionário"),
           gridItem.Column("Clientes.Nome", header:="Cliente"),
           gridItem.Column("Selecionado", header:="Selecionar", style:="text-align-center", format:=Function(item) item.GetSelectLink()),
           gridItem.Column("", header:="Ação", style:="webgrid-alterar", format:=Function(item) Html.Raw(String.Format("<a href={0}> <img src={1}/> </a>", Url.Action("Details", "Pedido", New With {.id = item.IDPedido}), Url.Content("~/imagens/visualizarLeg.png"))))))
    End Code
    <h2>Pedido Produto</h2>
    @Code
        If gridItem.HasSelection Then
            Dim p = gridItem.SelectedRow.Value.pedidoprodutos
        Dim gridItem2 = New WebGrid(p, rowsPerPage:=5, selectionFieldName:="SelectedRow")
        @gridItem2.GetHtml(tableStyle:="webgrid")
    
      End If 
    End Code


    • Marcado como Resposta Paulo M Dalbosco terça-feira, 7 de agosto de 2012 12:26
    terça-feira, 7 de agosto de 2012 12:26
  • Você fez um "master details" né! Muito bom cara, vai me ajudar no futuro!

    Abraços.

    terça-feira, 7 de agosto de 2012 14:08