none
Foreach checkbox RRS feed

  • Pergunta

  • Galera preciso fazer na minha view um foreach da minha model usuario, incluindo para cada usuário um checkbox ao lado.

    Como posso fazer isso ?

    Obrigado


    SirSmart

    terça-feira, 8 de abril de 2014 11:18

Respostas

  • Segue links:

    http://www.systenics.com/blog/create-a-grid-view-with-paging-and-sorting-feature-using-aspnet-mvc-razor-and-linq/?tag=Razor

    http://jainbipin.blogspot.com.br/2011/04/aspnet-mvc-3-razor-engine-web-grid.html

    http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

    http://msdn.microsoft.com/en-us/library/system.web.helpers.webgrid(v=vs.99).aspx

    http://forums.asp.net/t/1804955.aspx

    http://forums.asp.net/t/1837902.aspx

    https://www.youtube.com/watch?v=UW-sHS9T8Kw

    https://www.youtube.com/watch?v=wDv_IzgQe0I

    http://www.macoratti.net/12/04/asp_wbg1.htm

    http://www.macoratti.net/12/04/asp_wbg2.htm

    Tem um material bem extenso ai pra te ajudar. 

    Assista umas video aulas nesse link: http://cleytonferrari.com/ ele explica como fazer uma lista(grid) sem check box, mas ai você tendo a ideia já vai conseguir fácil. 

    Abraço.


    • Editado Fernando Mamprin terça-feira, 8 de abril de 2014 12:02
    • Marcado como Resposta SirSmart terça-feira, 8 de abril de 2014 14:18
    terça-feira, 8 de abril de 2014 12:01
  • SirSmart,

    Vamos considerar a seguinte classe de Modelo chamada Usuario:

        public class Usuario
        {
            public int Id { get; set; }
            public string Nome { get; set; }
            public string CPF { get; set; }
        }

    Tenho o seguinte Controller

        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                return View("List", ObterUsuarios());
            }
    
            public ActionResult List(Usuario[] usuarios) {
                if (usuarios == null) {
                    usuarios = ObterUsuarios();
                }
                return View(usuarios);
            }
    
            /// <summary>
            /// Simula uma pesquisa no banco de dados trazendo uma pesquisa de usuários
            /// </summary>
            /// <returns></returns>
            private Usuario[] ObterUsuarios() {
                
                Usuario[] usuarios = new Usuario[] { new Usuario { Id = 1, Nome = "João",      CPF = "111.111.111-11" }, 
                                                     new Usuario { Id = 2, Nome = "Alberto",   CPF = "222.222.222-22" },
                                                     new Usuario { Id = 3, Nome = "Maria",     CPF = "333.333.333-33" },
                                                     new Usuario { Id = 4, Nome = "Cristiano", CPF = "444.444.444-44" },
                                                     new Usuario { Id = 5, Nome = "Cibele",    CPF = "555.555.555-55" },
                                                     new Usuario { Id = 6, Nome = "Cristina",  CPF = "666.666.666-66" }};
                return usuarios;        
            }
        }

    E a seguinte View:

    @using ForeachUsuarioComCheckbox.Models
    @model Usuario[]
    @{
        ViewBag.Title = "Foreach de Usuarios com Checkbox";
    }
    
    @section scripts{
        <script>
            function check(checkbox, id)
            {
                if(checkbox.checked){
                    alert("O usuário de ID " + id + " foi selecionado!");
                }
            }
          </script>
    }
    <h2>Foreach de Usuarios com Checkbox</h2>
    
    <table>
        <thead>
            <tr>
                <td>Selecione</td>
                <td>Nome</td>
                <td>CPF</td>
            </tr>
        </thead>
        <tbody>
            @foreach (Usuario usuario in @Model)
            {
                <tr>
                    <td>
                        <input type="checkbox" onclick="check(this, @usuario.Id)" />
                    </td>
                    <td>
                       <span>@usuario.Nome</span>
                    </td>
                    <td>
                        <span>@usuario.CPF</span>
                    </td>
                </tr>
            }
        </tbody>
    </table>

    Com isso, o browser renderiza a seguinte tela:

    Quando você seleciona um dos checkbox, um alert é apresentado mostrando o ID do usuário que você selecionou. Com esse ID "em mãos", você pode fazer o que desejar com ele.

    Observe a rotina javascript que eu adicionei na seção scripts para manipular o click do checkbox e se o mesmo estiver checado (selecionado) obter o ID e apresentar o alert().

    Você pode obter código-fonte do projeto que eu utilizei para esta demonstração aqui.


    Renato Person | MCPD

    • Sugerido como Resposta Renato Person terça-feira, 8 de abril de 2014 13:37
    • Marcado como Resposta SirSmart terça-feira, 8 de abril de 2014 14:18
    terça-feira, 8 de abril de 2014 13:35

Todas as Respostas

  • SirSmart,

    Desculpa, acho que não entendi a sua pergunta...

    Você quer criar uma check box para cada usuário?

    terça-feira, 8 de abril de 2014 12:00
  • Segue links:

    http://www.systenics.com/blog/create-a-grid-view-with-paging-and-sorting-feature-using-aspnet-mvc-razor-and-linq/?tag=Razor

    http://jainbipin.blogspot.com.br/2011/04/aspnet-mvc-3-razor-engine-web-grid.html

    http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

    http://msdn.microsoft.com/en-us/library/system.web.helpers.webgrid(v=vs.99).aspx

    http://forums.asp.net/t/1804955.aspx

    http://forums.asp.net/t/1837902.aspx

    https://www.youtube.com/watch?v=UW-sHS9T8Kw

    https://www.youtube.com/watch?v=wDv_IzgQe0I

    http://www.macoratti.net/12/04/asp_wbg1.htm

    http://www.macoratti.net/12/04/asp_wbg2.htm

    Tem um material bem extenso ai pra te ajudar. 

    Assista umas video aulas nesse link: http://cleytonferrari.com/ ele explica como fazer uma lista(grid) sem check box, mas ai você tendo a ideia já vai conseguir fácil. 

    Abraço.


    • Editado Fernando Mamprin terça-feira, 8 de abril de 2014 12:02
    • Marcado como Resposta SirSmart terça-feira, 8 de abril de 2014 14:18
    terça-feira, 8 de abril de 2014 12:01
  • Sim, um listbox para cada usuário

    SirSmart

    terça-feira, 8 de abril de 2014 12:42
  • SirSmart,

    Vamos considerar a seguinte classe de Modelo chamada Usuario:

        public class Usuario
        {
            public int Id { get; set; }
            public string Nome { get; set; }
            public string CPF { get; set; }
        }

    Tenho o seguinte Controller

        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                return View("List", ObterUsuarios());
            }
    
            public ActionResult List(Usuario[] usuarios) {
                if (usuarios == null) {
                    usuarios = ObterUsuarios();
                }
                return View(usuarios);
            }
    
            /// <summary>
            /// Simula uma pesquisa no banco de dados trazendo uma pesquisa de usuários
            /// </summary>
            /// <returns></returns>
            private Usuario[] ObterUsuarios() {
                
                Usuario[] usuarios = new Usuario[] { new Usuario { Id = 1, Nome = "João",      CPF = "111.111.111-11" }, 
                                                     new Usuario { Id = 2, Nome = "Alberto",   CPF = "222.222.222-22" },
                                                     new Usuario { Id = 3, Nome = "Maria",     CPF = "333.333.333-33" },
                                                     new Usuario { Id = 4, Nome = "Cristiano", CPF = "444.444.444-44" },
                                                     new Usuario { Id = 5, Nome = "Cibele",    CPF = "555.555.555-55" },
                                                     new Usuario { Id = 6, Nome = "Cristina",  CPF = "666.666.666-66" }};
                return usuarios;        
            }
        }

    E a seguinte View:

    @using ForeachUsuarioComCheckbox.Models
    @model Usuario[]
    @{
        ViewBag.Title = "Foreach de Usuarios com Checkbox";
    }
    
    @section scripts{
        <script>
            function check(checkbox, id)
            {
                if(checkbox.checked){
                    alert("O usuário de ID " + id + " foi selecionado!");
                }
            }
          </script>
    }
    <h2>Foreach de Usuarios com Checkbox</h2>
    
    <table>
        <thead>
            <tr>
                <td>Selecione</td>
                <td>Nome</td>
                <td>CPF</td>
            </tr>
        </thead>
        <tbody>
            @foreach (Usuario usuario in @Model)
            {
                <tr>
                    <td>
                        <input type="checkbox" onclick="check(this, @usuario.Id)" />
                    </td>
                    <td>
                       <span>@usuario.Nome</span>
                    </td>
                    <td>
                        <span>@usuario.CPF</span>
                    </td>
                </tr>
            }
        </tbody>
    </table>

    Com isso, o browser renderiza a seguinte tela:

    Quando você seleciona um dos checkbox, um alert é apresentado mostrando o ID do usuário que você selecionou. Com esse ID "em mãos", você pode fazer o que desejar com ele.

    Observe a rotina javascript que eu adicionei na seção scripts para manipular o click do checkbox e se o mesmo estiver checado (selecionado) obter o ID e apresentar o alert().

    Você pode obter código-fonte do projeto que eu utilizei para esta demonstração aqui.


    Renato Person | MCPD

    • Sugerido como Resposta Renato Person terça-feira, 8 de abril de 2014 13:37
    • Marcado como Resposta SirSmart terça-feira, 8 de abril de 2014 14:18
    terça-feira, 8 de abril de 2014 13:35