Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC заполнить деталь. / 25 сообщений из 28, страница 1 из 2
22.04.2013, 19:44
    #38235619
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Нужно как-то заполнить деталь текстбоксы при клике на строке в гриде. Модель, из которой выводятся данные в грид уже имеет все поля для верхней и нижней части. Как это сделать, плиз?
...
Рейтинг: 0 / 0
22.04.2013, 20:25
    #38235666
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic Hunter, ну к примеру рендерить строку таблицы так:
Код: html
1.
<tr onclick="location.href = 'http://localhost:8296/request/12345'">
...
Рейтинг: 0 / 0
22.04.2013, 20:32
    #38235673
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
skyANA,

В верху Telerik Grid. Куда я onclick засуну?
...
Рейтинг: 0 / 0
22.04.2013, 20:37
    #38235677
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Я думал через жабу-скипт вытаскивать данные из грида на клик. Но так тоже не получается. Если колонку в гриде сделать visible=false, то к ней уже не достучаться. Контроллер просто не присылает для нее данные из модели.
...
Рейтинг: 0 / 0
22.04.2013, 20:44
    #38235683
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic HunterskyANA,

В верху Telerik Grid. Куда я onclick засуну?
прально сказал skyANA , как засунуть вы что, да проблем нет.... и аджаксом заполняйте через ид строки
...
Рейтинг: 0 / 0
22.04.2013, 21:02
    #38235697
cooldeveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic HunterskyANA, В верху Telerik Grid. Куда я onclick засуну?
Да хоть херерик:

Код: javascript
1.
2.
3.
$("#target_id").click(function() {
    // ...
});
...
Рейтинг: 0 / 0
22.04.2013, 21:11
    #38235700
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
В контроллере есть метод Index(), который присылает дату для грида. Что еще в контоллере нужно прописать?
...
Рейтинг: 0 / 0
22.04.2013, 21:27
    #38235710
cooldeveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Сделай тестовый проект и выкладывай. Гадать по кофейной гуще на твой код мало желания.
...
Рейтинг: 0 / 0
22.04.2013, 21:43
    #38235718
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
cooldeveloperСделай тестовый проект и выкладывай. Гадать по кофейной гуще на твой код мало желания.
да не надо говнопроектов гугл выдал http://demos.telerik.com/aspnet-mvc/razor/grid/selectionclientside?theme=vista
...
Рейтинг: 0 / 0
22.04.2013, 21:44
    #38235720
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
cooldeveloperСделай тестовый проект и выкладывай. Гадать по кофейной гуще на твой код мало желания.
...
Рейтинг: 0 / 0
22.04.2013, 21:48
    #38235723
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Где-то в степиcooldeveloperСделай тестовый проект и выкладывай. Гадать по кофейной гуще на твой код мало желания.
да не надо говнопроектов гугл выдал http://demos.telerik.com/aspnet-mvc/razor/grid/selectionclientside?theme=vista
Во-первых там мастер-деталь, а у меня текстбоскы , а не грид. Во-вторых, вот каким чудейсным образом вызывается эта функция из контоллера? Она нигде не упоминается.



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
namespace Telerik.Web.Mvc.Examples
{
    using System.Web.Mvc;
    public partial class GridController : Controller
    {
        public ActionResult SelectionServerSide(string id)
        {
            ViewData["Customers"] = GetCustomers();
            if (string.IsNullOrEmpty(id))
            {
                id = "ALFKI";
            }
            ViewData["id"] = id;
            ViewData["Orders"] = GetOrdersForCustomer(id);
            return View();
        }
    }
} 
...
Рейтинг: 0 / 0
22.04.2013, 22:08
    #38235740
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic Hunter,
поменяй функцию js onRowSelected
в вьюхе
на это
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
 function onRowSelected(e) {
        alert(FieldTestRequestID = e.row.cells[1].innerHTML);
        var GridRequests = $('#GridRequests').data('tGrid');
        FieldTestRequestID = e.row.cells[1].innerHTML;
        Teacher = e.row.cells[2].innerHTML;
        // update ui text
        $('#FieldTestRequestID').text(FieldTestRequestID);
        $('#Teacher').text(FieldTestRequestID);
    }


может натолкнет на мысль
...
Рейтинг: 0 / 0
22.04.2013, 22:24
    #38235755
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic Hunter,

можешь ради прикола строку $('#Teacher').text(FieldTestRequestID);
исправить на $('#Teacher').val(FieldTestRequestID);
...
Рейтинг: 0 / 0
22.04.2013, 22:38
    #38235764
cooldeveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public ActionResult Index(int id = 0)
{
    var fieldtestrequests = db.FieldTestRequests.Include(f => f.FieldTestData).Include(f => f.Teachers).OrderBy(f => f.FieldTestRequestID);
    ViewData["notes"] = "Hello!";
    ViewData["detail"] = id > 0 ? fieldtestrequests.FirstOrDefault(d => d.FieldTestRequestID == id) : null;

    return View(fieldtestrequests);
 }



razor
Код: html
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.
@{ 
    var detail = ViewData["detail"] as MvcFieldTestRequest2.Models.FieldTestRequests;
}

<div id="stylized" class="myform">

<label>Teacher
</label>
<input type="text" name="Teacher" id="Teacher" />

<label>Duration
</label>
@Html.TextBox("Duration", detail != null && detail.Duration.HasValue ? detail.Duration.ToString() : "")


<label>First Test Date
</label>
<input type="text" name="FirstTestDate" id="FirstTestDate" />

<label>Class ID
</label>
    @Html.TextBox("ClassID", detail != null && detail.ClassID != null ? detail.ClassID.ToString() : "")

<label>Class Start Time
</label>
<input type="text" name="ClassStartTime" id="ClassStartTime" />



P.S. Но лучше всё запихать в модель. ViewData зло.
...
Рейтинг: 0 / 0
22.04.2013, 23:04
    #38235778
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Где-то в степиможет натолкнет на мысльЯ говорил, что в гриде Teacher и прочих колонок нет. Они есть в модели. Т.ч. вытянуть жабой-скипт не получися.
...
Рейтинг: 0 / 0
22.04.2013, 23:29
    #38235799
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic Hunter,
причем тут скрипт, у вас есть id выделенной строки, получайте данные с сервера и заполняйте свои поля ввода,
...
Рейтинг: 0 / 0
22.04.2013, 23:53
    #38235815
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Где-то в степи
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
 function onRowSelected(e) {
        alert(FieldTestRequestID = e.row.cells[1].innerHTML);
        var GridRequests = $('#GridRequests').data('tGrid');
        FieldTestRequestID = e.row.cells[1].innerHTML;
        Teacher = e.row.cells[2].innerHTML;
        // update ui text
        $('#FieldTestRequestID').text(FieldTestRequestID);
        $('#Teacher').text(FieldTestRequestID);
    }


Ну Вы-же из грида cell[..] данные тащите здесь? Да/нет?
...
Рейтинг: 0 / 0
23.04.2013, 00:00
    #38235822
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic Hunter,
на клиенте...
есть событие выделение строки - есть строка в этом событии ( которая выделена) - есть id этой строки, что надо -
надо послать запрос на сервер и получить данные для заполнения полей ввода, есть пример как jq как вставить значение в поле ввода.
Может у телерика есть обертка под это дело , я не знаю, что вас затрудняет в вопросе обращения к серверу?
...
Рейтинг: 0 / 0
23.04.2013, 00:03
    #38235828
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Вас смущает кусок кода который я не удалил, так вы могли бы сами додуматься, что он тут ... не нужен
Код: javascript
1.
2.
3.
4.
5.
6.
7.
function onRowSelected(e) {
        var id = e.row.cells[1].innerHTML;
      //запрос на сервер
   .................
     //Заполнение полей ввода.
 ................
    }
...
Рейтинг: 0 / 0
23.04.2013, 00:11
    #38235841
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Где-то в степиВас смущает кусок кода который я не удалил, так вы могли бы сами додуматься, что он тут ... не нужен
Код: javascript
1.
2.
3.
4.
5.
6.
7.
function onRowSelected(e) {
        var id = e.row.cells[1].innerHTML;
      //запрос на сервер
   .................
     //Заполнение полей ввода.
 ................
    }

Да у меня и ID в релизе не будет в гриде. Это я так, для примера.
Как из JS звать сервер я не знаю (пока:). Как?


В общем пока сделал. как МСУ сказал - работает (ато!). Благодарю.
...
Рейтинг: 0 / 0
23.04.2013, 00:56
    #38235857
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic Hunter,

Если в контроллере извлекается лукап табличка f => f.Teachers, то как к ней во вью обратится?

Код: c#
1.
2.
3.
4.
5.
6.
        public ActionResult Index(int id = 0)
        {
            var fieldtestrequests = db.FieldTestRequests.Include(f => f.FieldTestData).Include(f => f.Teachers).OrderBy(f => f.FieldTestRequestID);
            ViewData["detail"] = id > 0 ? fieldtestrequests.Include(f => f.Teachers).FirstOrDefault(d => d.FieldTestRequestID == id): null;            
            return View(fieldtestrequests);
        }
...
Рейтинг: 0 / 0
23.04.2013, 01:11
    #38235863
cooldeveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic Hunter, я ж уже говорил, сделай себе нормальную модель и наполняй ее по потребностям, во вью юзай нормальные типизированные данные. Вьюдаты с вьюбэгами на свалку.
...
Рейтинг: 0 / 0
23.04.2013, 01:19
    #38235867
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Relic Hunter,
В принципе если трафик не жмет, и актуальность данных не важна можно вытащить на клиента всю таблицу данных
просто некоторые поля ( не нужные скрыть)
columns.Bound(model => model.FieldTestRequestID).Title("ID").Width(40).HtmlAttributes(new { @style = "display:none;" });
тогда можно наполнять поля ввода тупа по индексу, никуда не обращаясь ( они в гриде индексируются)
...
Рейтинг: 0 / 0
23.04.2013, 01:19
    #38235869
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
cooldeveloper,

А что не так с моделью? Там 2-е таблички мастер-деталь, все поля торчат наружу.
...
Рейтинг: 0 / 0
23.04.2013, 02:51
    #38235891
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC заполнить деталь.
Где-то в степиRelic Hunter,
В принципе если трафик не жмет, и актуальность данных не важна можно вытащить на клиента всю таблицу данных
просто некоторые поля ( не нужные скрыть)
columns.Bound(model => model.FieldTestRequestID).Title("ID").Width(40).HtmlAttributes(new { @style = "display:none;" });
тогда можно наполнять поля ввода тупа по индексу, никуда не обращаясь ( они в гриде индексируются)Да, этот вариант рабочий. Хотелось-бы поменьше жаба-скриптить, обоитись вью и контроллером. Ну как вариант, да...
авторRelic Hunter,

Если в контроллере извлекается лукап табличка f => f.Teachers, то как к ней во вью обратится?
Сори, торможу.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC заполнить деталь. / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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