GridPanel and CommandColumn

23 views
Skip to first unread message

Viktor Sirchenko

unread,
Aug 12, 2014, 12:40:18 AM8/12/14
to ext...@googlegroups.com
Всем привет, с Ext.NET я новичек поэтому могу задать глупые вопросы

Хочу в GridPanel вставить колонку в который были бы кнопки Edit и Delete и которые бы выполняли методы описанные в Контроллере, я поискал примеры на портале но так и не нашел, там везде только вовыд сообщения и все, если кто делал такое, буду раж примерам

Daniil Veriga

unread,
Aug 12, 2014, 12:06:52 PM8/12/14
to ext...@googlegroups.com
Привет!

Может быть 2 подхода.

1. Использовать Command DirectEvent Action и отправлять все необходимые данные на сервер.

2. Использовать Command Listener co switch или if по "command" и дёргать DirectMethods.



2014-08-12 8:40 GMT+04:00 Viktor Sirchenko <vsirc...@gmail.com>:
Всем привет, с Ext.NET я новичек поэтому могу задать глупые вопросы

Хочу в GridPanel вставить колонку в который были бы кнопки Edit и Delete и которые бы выполняли методы описанные в Контроллере, я поискал примеры на портале но так и не нашел, там везде только вовыд сообщения и все, если кто делал такое, буду раж примерам

--
Вы получили это сообщение, поскольку подписаны на группу "Ext.NET".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес extnet+un...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Viktor Sirchenko

unread,
Aug 12, 2014, 12:23:22 PM8/12/14
to ext...@googlegroups.com
А можно примеры по этим двум методам, я пробовал делать DirectEvent, но была проблема с передачей параметра из строки

вторник, 12 августа 2014 г., 22:06:52 UTC+6 пользователь Daniil написал:

Daniil Veriga

unread,
Aug 12, 2014, 12:25:40 PM8/12/14
to ext...@googlegroups.com
Кажется, на форуме были такие примеры. Это надо искать. У меня под рукой нет.

Viktor Sirchenko

unread,
Aug 12, 2014, 12:26:37 PM8/12/14
to ext...@googlegroups.com
Ок, попробую снова поискать

вторник, 12 августа 2014 г., 22:25:40 UTC+6 пользователь Daniil написал:

Viktor Sirchenko

unread,
Aug 12, 2014, 11:40:31 PM8/12/14
to ext...@googlegroups.com
Нашел пример который мне подходит, но вот не могу понять как передавать параметры

                    .DirectEvents(de =>
                    {
                        de.Command.Url = Url.Action("Edit");
                        de.Command.ExtraParams.Add(new Parameter { id = "record.data.ID" });
                    })


но тут же получаю сообщение что : 
Compiler Error Message: CS0117: 'Ext.Net.Parameter' does not contain a definition for 'id'

а при выборе доступных параметров нет тех что мне надо, я пытаюсь все это передать в метод контроллера:

        public ActionResult Edit(int id = 0)
        {
            Currency currency = db.Currencies.Find(id);




вторник, 12 августа 2014 г., 22:26:37 UTC+6 пользователь Viktor Sirchenko написал:

Daniil Veriga

unread,
Aug 13, 2014, 12:14:37 AM8/13/14
to ext...@googlegroups.com
У Parameter есть .Name и .Value.

Так же в вашем случае надо будет поставить Mode="Raw".

Viktor Sirchenko

unread,
Aug 13, 2014, 12:22:06 AM8/13/14
to ext...@googlegroups.com
Да это помогло, но появилась другая загроздка, у меня в контроллере 2 метода Edit:

        public ActionResult Edit(int id = 0)
        {
            Currency currency = db.Currencies.Find(id);
            if (currency == null)
            {
                return HttpNotFound();
            }
            //return View(currency);
            return new Ext.Net.MVC.PartialViewResult { ViewName = "Create", Model = currency };
        }

        //
        // POST: /Currency/Edit/5

        [HttpPost]
                public ActionResult Edit(Currency currency)
        {
            if (ModelState.IsValid)
            {
                db.Entry(currency).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(currency);
        }

и мой вызов со стороны клиента обращается ко второму методы, а мне надо к первому

среда, 13 августа 2014 г., 10:14:37 UTC+6 пользователь Daniil написал:

Daniil Veriga

unread,
Aug 13, 2014, 9:52:57 AM8/13/14
to ext...@googlegroups.com
А как id параметр выглядит в запросе? Не строка ли там вместо числа, случаем.

Viktor Sirchenko

unread,
Aug 13, 2014, 10:36:24 AM8/13/14
to ext...@googlegroups.com
Вообще принимаемое значение число, на счет запроса не знаю


среда, 13 августа 2014 г., 19:52:57 UTC+6 пользователь Daniil написал:

Daniil Veriga

unread,
Aug 13, 2014, 11:04:02 AM8/13/14
to ext...@googlegroups.com
Вообще принимаемое значение число

Поясните, пожалуйста.

на счет запроса не знаю

Надо бы глянуть.

Viktor Sirchenko

unread,
Aug 13, 2014, 11:42:15 AM8/13/14
to ext...@googlegroups.com
я имею ввиду что принимаемое значение в методе имеет тип INT

среда, 13 августа 2014 г., 21:04:02 UTC+6 пользователь Daniil написал:

Viktor Sirchenko

unread,
Aug 13, 2014, 8:21:42 PM8/13/14
to ext...@googlegroups.com
вот как описаны методы у меня в контроллере:

        //
        // GET: /Currency/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Currency currency = db.Currencies.Find(id);
            if (currency == null)
            {
                return HttpNotFound();
            }
            //return View(currency);
            return new Ext.Net.MVC.PartialViewResult { ViewName = "Create", Model = currency };
        }

        //
        // POST: /Currency/Edit/5

        [HttpPost]
        //[ValidateAntiForgeryToken]
        public ActionResult Edit(Currency currency)
        {
            if (ModelState.IsValid)
            {
                db.Entry(currency).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return this.Direct();
        }

перед вторым стоит атрибут [HttpPost], может в DirectEvent есть возможность указать каким типом отправить данные, кстате перед первым методом указан путь по которому можно вызвать этот метод

среда, 13 августа 2014 г., 21:42:15 UTC+6 пользователь Viktor Sirchenko написал:

Daniil Veriga

unread,
Aug 14, 2014, 12:33:28 AM8/14/14
to ext...@googlegroups.com
я имею ввиду что принимаемое значение в методе имеет тип INT

Вы имеете в виду сигнатуру метода?

 public ActionResult Edit(int id = 0)

Надо проверить, что на самом деле в запросе - строка или число. Может быть, в этом дело.

Viktor Sirchenko

unread,
Aug 14, 2014, 2:31:21 PM8/14/14
to ext...@googlegroups.com
Если смотреть через Network, то используется  POST, как сделать чтобы использовался GET?

четверг, 14 августа 2014 г., 10:33:28 UTC+6 пользователь Daniil написал:

Viktor Sirchenko

unread,
Aug 15, 2014, 12:17:45 AM8/15/14
to ext...@googlegroups.com
Ну этот вопрос решился, я прописал HTTP метод и получил доступ к тому методу в контроллере который мне был нужен

пятница, 15 августа 2014 г., 0:31:21 UTC+6 пользователь Viktor Sirchenko написал:
Reply all
Reply to author
Forward
0 new messages