Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / можно ли иначе(multiplecheckboxes) / 5 сообщений из 5, страница 1 из 1
21.09.2012, 12:29
    #37967161
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли иначе(multiplecheckboxes)
Вообщем из экшена возврашается список состоящий из класса с полями Id,Name, Checked
рисуют
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
 @for (int i = 0; i < Model.Collection.Count(); i++)
                    {
                        @Html.CheckBoxFor(item => item.Collection[i].Checked)
                        @Model.Collection[i].Name
                        @Html.HiddenFor(item => item.Collection[i].Name)
                        @Html.HiddenFor(item => item.Collection[i].Id)

                    }


После самбита, я вижу что чекнут а что нет. Но это занимает 4 html тега что как бы расточительно по идее .. верстка выглядит не сосвсем уже чисто. Можно ли уложится как то в 2 тега (<label><<input type="checkbox"></label>) чтоб после submit я в экшене получил список назад.
...
Рейтинг: 0 / 0
21.09.2012, 13:18
    #37967285
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли иначе(multiplecheckboxes)
А зачем наименование туда-сюда передовать?
Код: c#
1.
@Html.HiddenFor(item => item.Collection[i].Name)
...
Рейтинг: 0 / 0
21.09.2012, 13:22
    #37967296
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли иначе(multiplecheckboxes)
ну чтоб к бд не обращатся, когда что то не ввел или валидация не прошла, то вернуть назад во вьюшку.Тогда то что человек вбил останется вбитыми + месага о ошибке
...
Рейтинг: 0 / 0
21.09.2012, 13:54
    #37967371
Deza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли иначе(multiplecheckboxes)
handmadeFromRuВообщем из экшена возврашается список состоящий из класса с полями Id,Name, Checked
рисуют
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
 @for (int i = 0; i < Model.Collection.Count(); i++)
                    {
                        @Html.CheckBoxFor(item => item.Collection[i].Checked)
                        @Model.Collection[i].Name
                        @Html.HiddenFor(item => item.Collection[i].Name)
                        @Html.HiddenFor(item => item.Collection[i].Id)

                    }


После самбита, я вижу что чекнут а что нет. Но это занимает 4 html тега что как бы расточительно по идее .. верстка выглядит не сосвсем уже чисто. Можно ли уложится как то в 2 тега (<label><<input type="checkbox"></label>) чтоб после submit я в экшене получил список назад.

как то так

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace webGrid.Controllers {
    public class HomeController : Controller {
        //
        // GET: /Home/

        public ActionResult Index() {
            var repo = new Data();
            var model = new UsersModel {Users = repo.GetUsers()};
           
            return View(model);
        }
        [HttpPost]
        public ActionResult Index(string[] ckb) {
            var a = ckb;
            return Index();

        }
    }

    public class UsersModel {
        public IEnumerable<User> Users { get; set; } 
    }

    public class User {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool IsChecked { get; set; }
    }

    public class Data {
        public IEnumerable<User> GetUsers() {
            return new List<User> {
                                      new User {Id = 1, Name = "jeka", IsChecked = true},
                                      new User {Id = 2, Name = "Alex", IsChecked = false},
                                      new User{Id=3,Name = "Serg",IsChecked = true},
                                      new User{Id=4,Name = "Anna",IsChecked = false},

                                  };

        }
    }

    
}




Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@model webGrid.Controllers.UsersModel

@using (Html.BeginForm("Index", "Home", FormMethod.Post)) {
    foreach (var p in Model.Users) {
        
        <input type="checkbox"  name="ckb" value="@p.Id"  @(p.IsChecked? "checked='checked'": "")/>
        @Html.Label("name", p.Name)
        
        <br/>
    }
    <input type="submit"/>
}
...
Рейтинг: 0 / 0
21.09.2012, 22:35
    #37968006
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли иначе(multiplecheckboxes)
Deza спасибо. верстка почище. Состояние через бд восстанавливаю(Name) . Продолжу не много вне темы. Оправдано ли использование патерна UnitOfWork + Repository, чтоб бизнес логика меньше зависила от ORM? Выскажите кто юзает свое мнение. (я обычно делал слой сервиса который брал определную сущность,по сути смешивал слои, подход может глуп но научится можно всегда новому, изза этого и спрашиваю) По идее врядли на проекте будет меняться бд и орм в процессе создания. ну очень редкие случаи в моей практике.
в яве вообще слоев туча http://www.j2eebrain.com/wp-content/uploads/figure06_02.gif.
П.С.особенно интерсно мнение МСУ )
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / можно ли иначе(multiplecheckboxes) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]