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

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

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

Код: javascript
1.
2.
3.
$("#target_id").click(function() {
    // ...
});
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235700
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В контроллере есть метод Index(), который присылает дату для грида. Что еще в контоллере нужно прописать?
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235710
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай тестовый проект и выкладывай. Гадать по кофейной гуще на твой код мало желания.
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235718
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperСделай тестовый проект и выкладывай. Гадать по кофейной гуще на твой код мало желания.
да не надо говнопроектов гугл выдал http://demos.telerik.com/aspnet-mvc/razor/grid/selectionclientside?theme=vista
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235720
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperСделай тестовый проект и выкладывай. Гадать по кофейной гуще на твой код мало желания.
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235723
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи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
MVC заполнить деталь.
    #38235740
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
MVC заполнить деталь.
    #38235755
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

можешь ради прикола строку $('#Teacher').text(FieldTestRequestID);
исправить на $('#Teacher').val(FieldTestRequestID);
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235764
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
MVC заполнить деталь.
    #38235778
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиможет натолкнет на мысльЯ говорил, что в гриде Teacher и прочих колонок нет. Они есть в модели. Т.ч. вытянуть жабой-скипт не получися.
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235799
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,
причем тут скрипт, у вас есть id выделенной строки, получайте данные с сервера и заполняйте свои поля ввода,
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235815
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи
Код: 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
MVC заполнить деталь.
    #38235822
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,
на клиенте...
есть событие выделение строки - есть строка в этом событии ( которая выделена) - есть id этой строки, что надо -
надо послать запрос на сервер и получить данные для заполнения полей ввода, есть пример как jq как вставить значение в поле ввода.
Может у телерика есть обертка под это дело , я не знаю, что вас затрудняет в вопросе обращения к серверу?
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235828
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вас смущает кусок кода который я не удалил, так вы могли бы сами додуматься, что он тут ... не нужен
Код: javascript
1.
2.
3.
4.
5.
6.
7.
function onRowSelected(e) {
        var id = e.row.cells[1].innerHTML;
      //запрос на сервер
   .................
     //Заполнение полей ввода.
 ................
    }
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235841
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиВас смущает кусок кода который я не удалил, так вы могли бы сами додуматься, что он тут ... не нужен
Код: javascript
1.
2.
3.
4.
5.
6.
7.
function onRowSelected(e) {
        var id = e.row.cells[1].innerHTML;
      //запрос на сервер
   .................
     //Заполнение полей ввода.
 ................
    }

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


В общем пока сделал. как МСУ сказал - работает (ато!). Благодарю.
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235857
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
MVC заполнить деталь.
    #38235863
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter, я ж уже говорил, сделай себе нормальную модель и наполняй ее по потребностям, во вью юзай нормальные типизированные данные. Вьюдаты с вьюбэгами на свалку.
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235867
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,
В принципе если трафик не жмет, и актуальность данных не важна можно вытащить на клиента всю таблицу данных
просто некоторые поля ( не нужные скрыть)
columns.Bound(model => model.FieldTestRequestID).Title("ID").Width(40).HtmlAttributes(new { @style = "display:none;" });
тогда можно наполнять поля ввода тупа по индексу, никуда не обращаясь ( они в гриде индексируются)
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38235869
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloper,

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

Если в контроллере извлекается лукап табличка f => f.Teachers, то как к ней во вью обратится?
Сори, торможу.
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38236017
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Huntercooldeveloper, А что не так с моделью? Там 2-е таблички мастер-деталь, все поля торчат наружу.
У тебя в качестве модели IEnumerable, а это не правильно.
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38238991
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не поскажет как прикрутить Ajax Databinding к гриду телерик. Как ни пытался все равно при попытке перейти к следующей странице в гриде приводит к "Error! The requested URL returned 500 - Internal Server Error". Я так понимаю, что-то не так с методом контроллера _AjaxBinding. Перепробовал разные варианты, все равно 500.
...
Рейтинг: 0 / 0
MVC заполнить деталь.
    #38239007
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

Controller

Код: 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.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcFieldTestRequest2.Models;
using MvcContrib.Pagination;
using Telerik.Web.Mvc;

namespace MvcFieldTestRequest2.Controllers
{
    public class FieldTestRequestsController : Controller
    {
        private FieldTestRequestDataEntities db = new FieldTestRequestDataEntities();

        //
        // GET: /FieldTestRequests/

        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);
        }

        public ActionResult CancelRequest(int id = 0)
        {
            FieldTestRequests fieldtestrequests = db.FieldTestRequests.Find(id);
            fieldtestrequests.Status = "Canceled";
            if (ModelState.IsValid)
            {
                db.Entry(fieldtestrequests).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return RedirectToAction("Index");
        }


        //Used for the Ajax binding
        [GridAction]
        public ActionResult _AjaxBinding(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(new GridModel(fieldtestrequests));

        }

        //
        // GET: /FieldTestRequests/Details/5

        public ActionResult Details(int id = 0)
        {
            FieldTestRequests fieldtestrequests = db.FieldTestRequests.Find(id);
            if (fieldtestrequests == null)
            {
                return HttpNotFound();
            }
            return View(fieldtestrequests);
        }

        //
        // GET: /FieldTestRequests/Create

        public ActionResult Create()
        {
            ViewBag.LevelID = new SelectList(db.FieldTestData, "LevelID", "LevelName");
            ViewBag.TeachersID = new SelectList(db.Teachers, "TeachersID", "Name");
            return View();
        }

        //
        // POST: /FieldTestRequests/Create

        [HttpPost]
        public ActionResult Create(FieldTestRequests fieldtestrequests)
        {
            if (ModelState.IsValid)
            {
                db.FieldTestRequests.Add(fieldtestrequests);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.LevelID = new SelectList(db.FieldTestData, "LevelID", "LevelName", fieldtestrequests.LevelID);
            ViewBag.TeachersID = new SelectList(db.Teachers, "TeachersID", "Name", fieldtestrequests.TeachersID);
            return View(fieldtestrequests);
        }

        //
        // GET: /FieldTestRequests/Edit/5

        public ActionResult Edit(int id = 0)
        {
            FieldTestRequests fieldtestrequests = db.FieldTestRequests.Find(id);
            if (fieldtestrequests == null)
            {
                return HttpNotFound();
            }
            ViewBag.LevelID = new SelectList(db.FieldTestData, "LevelID", "LevelName", fieldtestrequests.LevelID);
            ViewBag.TeachersID = new SelectList(db.Teachers, "TeachersID", "Name", fieldtestrequests.TeachersID);
            return View(fieldtestrequests);
        }

        //
        // POST: /FieldTestRequests/Edit/5

        [HttpPost]
        public ActionResult Edit(FieldTestRequests fieldtestrequests)
        {
            if (ModelState.IsValid)
            {
                db.Entry(fieldtestrequests).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            ViewBag.LevelID = new SelectList(db.FieldTestData, "LevelID", "LevelName", fieldtestrequests.LevelID);
            ViewBag.TeachersID = new SelectList(db.Teachers, "TeachersID", "Name", fieldtestrequests.TeachersID);
            return View(fieldtestrequests);
        }

        //
        // GET: /FieldTestRequests/Delete/5

        public ActionResult Delete(int id = 0)
        {
            FieldTestRequests fieldtestrequests = db.FieldTestRequests.Find(id);
            if (fieldtestrequests == null)
            {
                return HttpNotFound();
            }
            return View(fieldtestrequests);
        }

        //
        // POST: /FieldTestRequests/Delete/5

        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {
            FieldTestRequests fieldtestrequests = db.FieldTestRequests.Find(id);
            db.FieldTestRequests.Remove(fieldtestrequests);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}

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


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