Inquiridor
MVC Web.grid

Pergunta
-
Estou tentando fazer a ordenação no meu web.grid ao clicar na coluna , mas não estou conseguindo.
Segue o codigo abaixo:
@model IEnumerable<Lambda.Models.Cd_Funcionario>
@{
ViewBag.Title = "Funcionario";
var grid = new WebGrid(Model, canSort: true, canPage: true, rowsPerPage: 5, defaultSort: "cd_funcionario1", sortDirectionFieldName: "DESC"
);
@grid.GetHtml(mode: WebGridPagerModes.All,
columns: grid.Columns(
grid.Column("cd_funcionario1", "Codigo", canSort: true),
grid.Column("ds_funcionario", "funcionario", canSort: true),
grid.Column("cd_status", "status", canSort: true),
grid.Column(format: (item) => Html.ActionLink("Edit", "EditarFuncionario", new { id = item.cd_funcionario1 })),
grid.Column(format: (item) => Html.ActionLink("Details", "Details", new { id = item.ds_funcionario })),
grid.Column(format: (item) => Html.ActionLink("Delete", "Delete", new { id = item.cd_status }))
)
)
}- Editado _Manigold_ quinta-feira, 24 de outubro de 2013 13:45
Todas as Respostas
-
-
Olá amigo, fiz , mas infelizmente não funcionou.
var grid = new WebGrid(Model, canSort: true, canPage: true, rowsPerPage: 5, defaultSort: "cd_funcionario1"
);
@grid.GetHtml(mode: WebGridPagerModes.All,
columns: grid.Columns(
grid.Column("cd_funcionario1", "Codigo", canSort: true),
grid.Column("ds_funcionario", "funcionario", canSort: true),
grid.Column("cd_status", "status", canSort: true),
grid.Column(format: (item) => Html.ActionLink("Edit", "EditarFuncionario", new { id = item.cd_funcionario1 })),
grid.Column(format: (item) => Html.ActionLink("Details", "Details", new { id = item.ds_funcionario })),
grid.Column(format: (item) => Html.ActionLink("Delete", "Delete", new { id = item.cd_status }))
)
)muito obrigado.
-
Assim vai:
@{
// rotina que foi adicionado String SortField = "Id"; if (Request["Sort"] != null){ SortField = Request["Sort"].ToString(); } // ele vai pegar o campo que ficar no defaultSort como padrão ai rolaWebGrid Grid = new WebGrid(Model, rowsPerPage: 5, canPage: true, canSort: true, defaultSort: SortField, columnNames: new string[] { "Id, Descricao, Data, Valor, Status" }); } @Grid.GetHtml(mode: WebGridPagerModes.All, columns: Grid.Columns( Grid.Column(columnName: "Id", header: "Id", canSort:true), Grid.Column(columnName: "Descricao", header: "Descrição", canSort:true), Grid.Column(columnName: "Data", header: "Data", canSort: true), Grid.Column(columnName: "Valor", header: "Valor", canSort: true), Grid.Column(columnName: "Status", header: "Status", canSort: true) ))
Bom eu resolvi dessas forma passando e pegando por paramentro via Get o campo que foi selecionado para ordenação siga as mesmas intruções no seu caso eu vou fazer e se testa ai
Coloquei na sua:
String SortField = "cd_funcionario1"; // campo padrão quando carrega na primeira vez if (Request["Sort"] != null){ SortField = Request["Sort"].ToString(); } var grid = new WebGrid(Model, canSort: true, canPage: true, rowsPerPage: 5, defaultSort: SortField); @grid.GetHtml(mode: WebGridPagerModes.All, columns: grid.Columns( grid.Column("cd_funcionario1", "Codigo", canSort: true), grid.Column("ds_funcionario", "funcionario", canSort: true), grid.Column("cd_status", "status", canSort: true), grid.Column(format: (item) => Html.ActionLink("Edit", "EditarFuncionario", new { id = item.cd_funcionario1 })), grid.Column(format: (item) => Html.ActionLink("Details", "Details", new { id = item.ds_funcionario })), grid.Column(format: (item) => Html.ActionLink("Delete", "Delete", new { id = item.cd_status })) ) )
Fúlvio Cezar Canducci Dias- Sugerido como Resposta Fulvio Cezar Canducci Dias quinta-feira, 24 de outubro de 2013 18:44
-
ola Fúlvio , fiz exatamente como pediu , mas continua nao funcionando:
segue o codigo abaixo:
@model IEnumerable<Lambda.Models.Cd_Funcionario>
@{
// rotina que foi adicionado
String SortField = "cd_funcionario1";
if (Request["Sort"] != null)
{
SortField = Request["Sort"].ToString();
} // ele vai pegar o campo que ficar no defaultSort como padrão ai rola
WebGrid Grid = new WebGrid(Model,
rowsPerPage: 5,
canPage: true,
canSort: true,
defaultSort: SortField,
columnNames: new string[] { "codigo, funcionario, cargo, status" });
}
@Grid.GetHtml(mode: WebGridPagerModes.All,
columns: Grid.Columns(
Grid.Column(columnName: "cd_funcionario1", header: "codigo", canSort: true),
Grid.Column(columnName: "ds_funcionario", header: "funcionario", canSort: true),
Grid.Column(columnName: "ds_cargo", header: "cargo", canSort: true),
Grid.Column(columnName: "cd_status", header: "status", canSort: true)
))
Muito obrigado.
-
ola Fúlvio , fiz exatamente como pediu , mas continua nao funcionando:
segue o codigo abaixo:
@model IEnumerable<Lambda.Models.Cd_Funcionario>
@{
// rotina que foi adicionado
String SortField = "cd_funcionario1";
if (Request["Sort"] != null)
{
SortField = Request["Sort"].ToString();
} // ele vai pegar o campo que ficar no defaultSort como padrão ai rola
WebGrid Grid = new WebGrid(Model,
rowsPerPage: 5,
canPage: true,
canSort: true,
defaultSort: SortField,
columnNames: new string[] { "codigo, funcionario, cargo, status" });
}
@Grid.GetHtml(mode: WebGridPagerModes.All,
columns: Grid.Columns(
Grid.Column(columnName: "cd_funcionario1", header: "codigo", canSort: true),
Grid.Column(columnName: "ds_funcionario", header: "funcionario", canSort: true),
Grid.Column(columnName: "ds_cargo", header: "cargo", canSort: true),
Grid.Column(columnName: "cd_status", header: "status", canSort: true)
))
Muito obrigado.
Se fez errado!
Assim Observação coloca Request["Sort"] para Request["sort"] tanto no if quando na atribuição
e se não der certo me passa também o código do seu metodo que gera essa view!!!
Ta certo o que eu te passei é alguma coisa ai!
Fúlvio Cezar Canducci Dias -
-
-
-
-
-
-
-
-
-
Estou com problema com gridweb.
Compiler Error Message: CS1738: Named argument specifications must appear after all fixed arguments have been specified
meu modelo
public class CaracteristicaSistemaModel
{
public int Codigo { get; set; }
public string CaracteristicaNome { get; set; }
public int TipoSistema { get; set; }
public static List<CaracteristicaSistemaModel> Get()
{
List<CaracteristicaSistemaModel> lista = new List<CaracteristicaSistemaModel>();
lista.Add(new CaracteristicaSistemaModel { Codigo = 1, CaracteristicaNome = "Testando sistema", TipoSistema = 1 });
lista.Add(new CaracteristicaSistemaModel { Codigo = 2, CaracteristicaNome = "Testando sistema", TipoSistema = 2 });
lista.Add(new CaracteristicaSistemaModel { Codigo = 3, CaracteristicaNome = "Testando sistema", TipoSistema = 45 });
lista.Add(new CaracteristicaSistemaModel { Codigo = 4, CaracteristicaNome = "Testando sistema", TipoSistema = 55 });
return lista;
}
}@{
WebGrid grid = new WebGrid(source: Model);
}na view
@grid.GetHtml(mode: WebGridPagerModes.All, columns: grid.Column(columnName: "Codigo", header: "Código"), grid.Column(columnName: "CaracteristicaNome", header: "Característica", format: @<text>@item.CaracteristicaNome</text> ), grid.Column(columnName: "TipoSistema", header: "Tipo de Sistema"));
e no controllers
public ActionResult CaracteristicaSistema()
{
IEnumerable<CaracteristicaSistemaModel> model = CaracteristicaSistemaModel.Get();
return View(model);
}
Marcelo Gomes
- Editado marceloFloripa quinta-feira, 12 de março de 2015 03:15