powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC3 - Как обновить несколько полей в гриде?
37 сообщений из 37, показаны все 2 страниц
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794589
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день!

Подскажите, пожалуйста, такую вещь:
у меня есть список заказов, у каждого заказа есть статус. Статус выбирается из выпадающего списка.
Внизу таблицы - кнопка для сабмита этих изменений в базу.

Как обновить в базе заказы, по которым изменился статус (или какое-нибудь другое поле)?

P.S. Модель сделана на linq2sql - список заказов получается хранимой процедурой.
Ниже скриншот.
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794625
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glass,

1 вариант через аякс менять непосредственно измененную запись
2 вариант через post вернут контроллеру данные
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794647
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaGlass,

1 вариант через аякс менять непосредственно измененную запись
2 вариант через post вернут контроллеру данные

Я хочу вернуть данные контроллеру, только как это сделать?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794650
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как это сделать по всем записям сразу?
И как в контроллере понять, какие из них изменились?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794719
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glass,

Покажи код твоей View
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794725
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlassDezaGlass,

1 вариант через аякс менять непосредственно измененную запись
2 вариант через post вернут контроллеру данные

Я хочу вернуть данные контроллеру, только как это сделать?

Я MVC совсем немного знаю, но тем не менее:

[HttpPost]
public ActionResult Save(List<Orders> orders)
{
...
}

+ еще пример:


27. Последоватльные индексы
[HttpPost]
public ActionResult Save(List<Orders> orders)

@Html.TextBox(“[0].Name”)
@Html.TextBox(“[0].Price”)

@Html.TextBox(“[1].Name”)
@Html.TextBox(“[1].Price”)


И вообще почитай про последовательные индексы, IModelBinder, IValueProvider
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794729
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaGlass,

Покажи код твоей View

@model IEnumerable<WebSK.Models.Proc_ES_Order_ListResult>

@{
ViewBag.Title = "Index";
}

<div class="page-header">
<h1>Приемки на склад <small>Список открытых заказов на приемку</small></h1>
</div>
<form class="form-inline">
<table class="table table-striped table-bordered table-condensed">
<thead>
<th>Складской заказ</th>
<th>Кл.Док.Но.</th>
<th>Дата</th>
<th>Проект</th>
<th>Склад</th>
<th>Статус</th>
<th>Штук</th>
<th>Перевозчик</th>
<th>№ накладной</th>
<th>Вес</th>
<th>Объем</th>
<th>Мест</th>


</thead>
<tbody>
@foreach (var item in Model) {
<tr>
<td><a href="../OrderDetail?id=@item.ID">@Html.DisplayFor(modelItem => item.WO)</a></td>
<td>@Html.DisplayFor(modelItem => item.CustDocNo)</td>
<td>@Html.DisplayFor(modelItem => item.Date)</td>
<td>@Html.DisplayFor(modelItem => item.Project)</td>
<td>@Html.DisplayFor(modelItem => item.Location)</td>
<td>

<select id="status-@item.ID">
<option value="@item.Status">@item.Status</option>
@foreach (var s in item.AvailableStatus.Split(';'))
{
<option value="@s">@s</option>

}
</select>

</td>
<td>@Html.DisplayFor(modelItem => item.Qty)</td>
<td>@Html.DisplayFor(modelItem => item.Agent)</td>
<td>@Html.DisplayFor(modelItem => item.Waybill)</td>
<td>@Html.DisplayFor(modelItem => item.Weight)</td>
<td>@Html.DisplayFor(modelItem => item.Cubage)</td>
<td>@Html.DisplayFor(modelItem => item.Pcs)</td>
</tr>
}
</tbody>
</table>

<button type="submit" class="btn btn-primary">Записать новые статусы</button>
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794773
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glass,
1. Есть кнопка SRC, код обязательно заключай в теги

таблицу вместе с кнопкой поместить сюда
Код: c#
1.
2.
3.
@using (Html.BeginForm()) {

}



создать экшен

[HttpPost]
Код: c#
1.
2.
3.
4.
public ActionResult<Имя твоей вьюхи>(List<WebSK.Models.Proc_ES_Order_ListResult> model)
{
...
}
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794776
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
[HttpPost]
public ActionResult<Имя твоей вьюхи>(List<WebSK.Models.Proc_ES_Order_ListResult> model)
{
...
}
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794845
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deza
Код: c#
1.
2.
3.
4.
5.
[HttpPost]
public ActionResult<Имя твоей вьюхи>(List<WebSK.Models.Proc_ES_Order_ListResult> model)
{
...
}



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        [HttpPost]
        public ActionResult Index(List<Proc_ES_Order_ListResult> model)
        {
            foreach (var item in model)
            {
                ...
            }

            return RedirectToAction("Index");
        }



Сделал вот так, но ругается на NULL в model, т.е. возвращается пустышка?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794867
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Html.DisplayFor - потому что

тебе надо добавить
@Html.HiddenFor(x => x.Field) для каждого поля в форму
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794883
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneHtml.DisplayFor - потому что

тебе надо добавить
@Html.HiddenFor(x => x.Field) для каждого поля в форму
ппц, изврат же! проще (или даже правильнее) - сделать мини-модель на прием, я просто не вижу смысла передавать лишние данные
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794888
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneHtml.DisplayFor - потому что

тебе надо добавить
@Html.HiddenFor(x => x.Field) для каждого поля в форму

Т.е. надо прописать все поля как хидден, а те, что надо показать как Display?

А может быть дело в том, что у меня грид?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794901
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneHtml.DisplayFor - потому что

тебе надо добавить
@Html.HiddenFor(x => x.Field) для каждого поля в форму

не помогло, хотя и прописал.
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794906
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glass,

Прежде всего начни от сюда!
http://www.techdays.ru/videos/ASP.NET
Тренинг ASP.NET MVC 3 - Модуль 1. Знакомство с MVC 3
и так все тренинги и все вопросы отпадут
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794911
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaGlass,

Прежде всего начни от сюда!
http://www.techdays.ru/videos/ASP.NET
Тренинг ASP.NET MVC 3 - Модуль 1. Знакомство с MVC 3
и так все тренинги и все вопросы отпадут

Уверен, что отпададут, и обязательно посмотрю.

А по существу вопроса - есть еще какие-нибудь идеи?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794914
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glass,

смотри тренинги, потрать время, но научишься больше чем, тут тебе дадут сразу готовое решение, в котором ты не будешь понимать что как работает!
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794932
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaGlass,

смотри тренинги, потрать время, но научишься больше чем, тут тебе дадут сразу готовое решение, в котором ты не будешь понимать что как работает!

Т.е. ты видишь, где у меня ошибка?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37794943
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glass,

ошибка у тебя, в не понимании как происходит обмен между контролером и вьюхой,
вариантов в теме написали кучу, но пока ты не понимаешь что они значат...
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795413
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaGlass,

ошибка у тебя, в не понимании как происходит обмен между контролером и вьюхой,
вариантов в теме написали кучу, но пока ты не понимаешь что они значат...

Большое человеческое спасибо
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795517
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все-таки, может кто-нибудь кроме Deza подскажет, почему в пост-методе model = null?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        [HttpPost]
        public ActionResult Index(List<Proc_ES_Order_ListResult> model)
        {
            
            foreach (var item in model)
            {
                logger.Debug("new item" + item.WO);
            }
            
            return RedirectToAction("Index");
        }
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795630
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlassИ все-таки, может кто-нибудь кроме Deza подскажет, почему в пост-методе model = null?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        [HttpPost]
        public ActionResult Index(List<Proc_ES_Order_ListResult> model)
        {
            
            foreach (var item in model)
            {
                logger.Debug("new item" + item.WO);
            }
            
            return RedirectToAction("Index");
        }


внимательно почитай 12555690
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795658
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSGlassИ все-таки, может кто-нибудь кроме Deza подскажет, почему в пост-методе model = null?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        [HttpPost]
        public ActionResult Index(List<Proc_ES_Order_ListResult> model)
        {
            
            foreach (var item in model)
            {
                logger.Debug("new item" + item.WO);
            }
            
            return RedirectToAction("Index");
        }


внимательно почитай 12555690

Сделал точно такой же метод, как ты написал,

Код: c#
1.
2.
3.
4.
5.
[HttpPost]
public ActionResult Save(List<Orders> orders)
{
...
}



вот orders в нем приходит null
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795736
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glass,

1. форма передает данные не по id элемента, а по name
2. попробуй так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<select id="status-@item.ID" name='status'>
<option value="@item.Status">@item.Status</option>
@foreach (var s in item.AvailableStatus.Split(';'))
{
<option value="@s">@s</option>
}
</select> 



Код: c#
1.
2.
[HttpPost]
public ActionResult Save(List<string> states)



под дебагом проверь - что пришло
потом почитай про то что я тебе говорил и заюзай Dictionary<int, string>
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795744
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSGlass,

1. форма передает данные не по id элемента, а по name
2. попробуй так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<select id="status-@item.ID" name='status'>
<option value="@item.Status">@item.Status</option>
@foreach (var s in item.AvailableStatus.Split(';'))
{
<option value="@s">@s</option>
}
</select> 



Код: c#
1.
2.
[HttpPost]
public ActionResult Save(List<string> states)



под дебагом проверь - что пришло
потом почитай про то что я тебе говорил и заюзай Dictionary<int, string>


То есть, view не вернет мне назад мой list с заказами, верно?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795749
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSGlass,

1. форма передает данные не по id элемента, а по name
2. попробуй так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<select id="status-@item.ID" name='status'>
<option value="@item.Status">@item.Status</option>
@foreach (var s in item.AvailableStatus.Split(';'))
{
<option value="@s">@s</option>
}
</select> 



Код: c#
1.
2.
[HttpPost]
public ActionResult Save(List<string> states)



под дебагом проверь - что пришло
потом почитай про то что я тебе говорил и заюзай Dictionary<int, string>

Я уже заменил этот селект на что, попроще - просто понять, как оно работает.
<td>@Html.EditorFor(modelItem => item.Status)</td>

и все равно null в ответе.

И еще вопрос - почему метод называется Save?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795773
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Glass]SanSYSGlass,


И еще вопрос - почему метод называется Save?
в атрибутах формы можно указать какой метод контроллера будет обрабатывать твой пост, а названия методов должны нести смысловую нагрузку того, что они делают
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795793
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dezaпропущено...

в атрибутах формы можно указать какой метод контроллера будет обрабатывать твой пост, а названия методов должны нести смысловую нагрузку того, что они делают
блин, ну ты поосторожней с цитатами :)
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795796
Glass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSList<string> states


тоже приходит NULL :(
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795798
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlassИ еще вопрос - почему метод называется Save?
эм.. называй как хочешь, тут полностью рабочий код не пишут, описывают решение - ты уже под свою ситуацию подстраивай

1. гуглим mvc list model binding
2. первая же ссылка
3. читаем полностью и внимательно
4. приспосабливаем не разметку (лишнее передавать не нужно), а код принимающий данные
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795829
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или вот
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795830
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795843
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dezaили вот
http://stackoverflow.com/questions/6585585/mvc-binding-to-model-with-list-property-ignores-other-properties
Неправильно - не нужно передавать обратно всю модель, хотя если ожидается, что ее возможно придется вернуть - то конечно подходит вариант, но это не тот случай, имхо
Вам также рекомендую просмотреть предоставленные мной ссылки
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795844
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, где МСУ?
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795850
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYS...
Вам также рекомендую просмотреть предоставленные мной ссылки
я больше склоняюсь к "редактированию и сохранению через отдельную View"
или в конкретном примере сохранение можно было сделать через ajax в момент выбора в дроп листе
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795851
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSБлин, где МСУ?
:)
...
Рейтинг: 0 / 0
ASP.NET MVC3 - Как обновить несколько полей в гриде?
    #37795875
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaSanSYSБлин, где МСУ?
:)
Надо сюда мяса добавить
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC3 - Как обновить несколько полей в гриде?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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