Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Добавление в динамике элементов на форму / 11 сообщений из 11, страница 1 из 1
27.10.2014, 13:16
    #38788129
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
Добрый день . Пишу тут, потому как вопрос ближе к asp

Есть в наличии:

1. MVC
2. Модель в которой если List <> моделей со вложенными List <>

Код: 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.
 public class RequestAnalysisModel
    {
        public int RequestID { get; set; }
       public List<RequestAnalysisBlockModel> ListRequestAnalysisBlock { get; set; }
    }
    public class RequestAnalysisBlockModel
    {
        public int? AnalysisID { get; set; }
        public int InstitutionID { get; set; }
        public List<RequestAnalysisEquipmentModel> RequestAnalysisEquipment { get; set; }
    }

    public class RequestAnalysisEquipmentModel
    {
        public int? AnalysisEquipmentID { get; set; }
        public short TypeEquipmentID { get; set; }
        public short? TypePipelineID { get; set; }
        public short? TypeLocationID { get; set; }
        public short? TypeDocumentServicesID { get; set; }
        public short? TypePressureID { get; set; }
        public short? PointID { get; set; }
        public List<RequestAnalysisTypeAccidentModel> RequestAnalysisTypeAccident { get; set; }
        public List<RequestAnalysisInvolvedOnRequestModel> RequestAnalysisInvolvedOnRequest { get; set; }
      
    }






Необходимо на клиенте в форме редактирование добавлять блоки к этиvb листов. например в блоке есть select

Код: c#
1.
2.
<select class="form-control typepressure" id="ListRequestAnalysisBlock_2__RequestAnalysisEquipment_1__TypePressureID" name="ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].TypePressureID">
</select>




по кнопке нужно добавить select

Код: c#
1.
2.
<select class="form-control typepressure" id="ListRequestAnalysisBlock_2__RequestAnalysisEquipment_2__TypePressureID" name="ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].TypePressureID">
</select>



а бывает что нужно добавить и целый блок ListRequestAnalysisBlock и сооветветсвенно проставить нужные ID и name для элементов проставить.


Как проще сделать что бы передать такие данные

RequestID:3
[0].AnalysisID:1
[0].InstitutionID:1
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].AnalysisEquipmentID:1
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].TypeEquipmentID:1
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].AnalysisBlockID:1
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].AnalysisEquipmentID:1
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].CaseID:6
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].CaseValue:99
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].RequestAnalysisInvolvedOnRequest[0].AnalysisBlockID:1
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].RequestAnalysisInvolvedOnRequest[0].AnalysisEquipmentID:1
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].RequestAnalysisInvolvedOnRequest[0].InvolvedID:1
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0].RequestAnalysisInvolvedOnRequest[0].InvolvedValue:99
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[1].AnalysisEquipmentID:2
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[1].TypeEquipmentID:2
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].AnalysisBlockID:2
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].AnalysisEquipmentID:2
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].CaseID:4
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].CaseValue:99
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[1].RequestAnalysisInvolvedOnRequest[0].InvolvedID:
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[1].RequestAnalysisInvolvedOnRequest[0].InvolvedValue:
[1].AnalysisID:3
[1].InstitutionID:18
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].AnalysisEquipmentID:3
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].TypeEquipmentID:8
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].TypeDocumentServicesID:
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].PointID:2
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].AnalysisBlockID:3
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].AnalysisEquipmentID:3
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].CaseID:1
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].CaseValue:50
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[1].AnalysisBlockID:4
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[1].AnalysisEquipmentID:3
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[1].CaseID:2
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[1].CaseValue:44
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisInvolvedOnRequest[0].InvolvedID:
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[0].RequestAnalysisInvolvedOnRequest[0].InvolvedValue:
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].AnalysisEquipmentID:4
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].TypeEquipmentID:10
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].TypeDocumentServicesID:
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].PointID:1
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].AnalysisBlockID:6
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].AnalysisEquipmentID:4
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].CaseID:3
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].CaseValue:33
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].RequestAnalysisInvolvedOnRequest[0].InvolvedID:
ListRequestAnalysisBlock[1].RequestAnalysisEquipment[1].RequestAnalysisInvolvedOnRequest[0].InvolvedValue:
[2].AnalysisID:4
[2].InstitutionID:17
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].AnalysisEquipmentID:6
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].TypeEquipmentID:9
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].TypesPipelineID:1
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].TypePressureID:2
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].TypeLocationID:1
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].TypeDocumentServicesID:1
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].AnalysisBlockID:7
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].AnalysisEquipmentID:6
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].CaseID:1
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[0].CaseValue:5
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[1].AnalysisBlockID:8
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[1].AnalysisEquipmentID:6
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[1].CaseID:2
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisTypeAccident[1].CaseValue:7
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisInvolvedOnRequest[0].InvolvedID:
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[0].RequestAnalysisInvolvedOnRequest[0].InvolvedValue:
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].AnalysisEquipmentID:7
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].TypeEquipmentID:9
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].TypesPipelineID:2
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].TypePressureID:3
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].TypeLocationID:2
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].TypeDocumentServicesID:2
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].AnalysisBlockID:9
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].AnalysisEquipmentID:7
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].CaseID:5
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].CaseValue:55
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisInvolvedOnRequest[0].InvolvedID:
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisInvolvedOnRequest[0].InvolvedValue:


или обойти блоки ListRequestAnalysisBlock javasripts и погенерить javasript объекты и потом ajax ом отправить проще будет ?

Спасибо.
...
Рейтинг: 0 / 0
27.10.2014, 13:40
    #38788155
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
Andrey1306, а простыми словами можете объяснить, что Вы хотите сделать? Дать пользователю возможность добавлять на странице какие-то дополнительные ограничения?
...
Рейтинг: 0 / 0
27.10.2014, 13:45
    #38788160
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
skyANA,

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

В режиме "показать" все работает, но теперь нужно и что то и серверу отдать..
...
Рейтинг: 0 / 0
27.10.2014, 14:26
    #38788230
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
Andrey1306, а зачем такая сложная модель, если в итоге надо получить массив TypePressureID (short[])?
...
Рейтинг: 0 / 0
27.10.2014, 14:37
    #38788243
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
skyANA,

нет с чего вы взяли ?! TypePressureID это я для примера показал , как ининиализируется один из контролов на форме

в итоге надо получить модель RequestAnalysisModel и передать на сервер.

Та я думаю , что нужно на клиенте обойти все блоки и сгенерировать javasript объекты , там не нужно парится с именами и айди "списочных" элементов.


Просто интересно , как решаются подобные задачи с моделями где списки используются , а то приходится генерировать такое вот
@Html.DropDownList("[" + index + "].InstitutionID", и если на стороне сервера это еще полбеды, то следить за этим еще и на клиенте ....


1 блок их может быть несколько, также могут добавляться характеристики
...
Рейтинг: 0 / 0
27.10.2014, 14:49
    #38788261
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
Andrey1306, всё на самом деле просто:
Код: html
1.
2.
3.
4.
<select name="institution[]"></select>
<select name="institution[]"></select>
<select name="institution[]"></select>
<select name="institution[]"></select>


И на сервер постом уходит массив institution.
...
Рейтинг: 0 / 0
27.10.2014, 14:56
    #38788276
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
skyANAAndrey1306, всё на самом деле просто:
Код: html
1.
2.
3.
4.
<select name="institution[]"></select>
<select name="institution[]"></select>
<select name="institution[]"></select>
<select name="institution[]"></select>


И на сервер постом уходит массив institution.

это понятно ). У меня чуть сложнее модель. Отсюда и впорос у меня такой




Код: 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.
 public class RequestAnalysisModel
    {
        public int RequestID { get; set; }
       public List<RequestAnalysisBlockModel> ListRequestAnalysisBlock { get; set; }
    }
  
    public class RequestAnalysisBlockModel
    {
        public int? AnalysisID { get; set; }
        public int InstitutionID { get; set; }
        public List<RequestAnalysisEquipmentModel> RequestAnalysisEquipment { get; set; }
    }

    public class RequestAnalysisEquipmentModel
    {
        public int? AnalysisEquipmentID { get; set; }
      
        public short TypeEquipmentID { get; set; }
        public short? TypePipelineID { get; set; }
        public short? TypeLocationID { get; set; }
        public short? TypeDocumentServicesID { get; set; }
        public short? TypePressureID { get; set; }
        public short? PointID { get; set; }
        public List<RequestAnalysisTypeAccidentModel> RequestAnalysisTypeAccident { get; set; }
        public List<RequestAnalysisInvolvedOnRequestModel> RequestAnalysisInvolvedOnRequest { get; set; }
      
    }
    
    public class RequestAnalysisTypeAccidentModel
    {
        public int? AnalysisBlockID { get; set; }
        public int AnalysisEquipmentID { get; set; }
        public int CaseID { get; set; }
        public int CaseValue { get; set; }
    }

   
    public class RequestAnalysisInvolvedOnRequestModel
    {
        public int? AnalysisBlockID { get; set; }
        public int AnalysisEquipmentID { get; set; }

        public int InvolvedID { get; set; }
        public int InvolvedValue { get; set; }
    }





и может быть элемент например с таким именем.


ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[0].CaseID


и мне нужно еще 2 таких добавить . Вот вопрос как их правильно добавлять ?
они же должны быть в пределах ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1]

ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[ 0 ].CaseID
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[ 1 ].CaseID
ListRequestAnalysisBlock[2].RequestAnalysisEquipment[1].RequestAnalysisTypeAccident[ 2 ].CaseID


а может быть еще
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0]
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0]
ListRequestAnalysisBlock[0].RequestAnalysisEquipment[0]
...
Рейтинг: 0 / 0
27.10.2014, 14:58
    #38788281
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
Andrey1306,

отправил раньше времени

а может быть еще
ListRequestAnalysisBlock[ 1 ].RequestAnalysisEquipment[ 1 ]
ListRequestAnalysisBlock[ 2 ].RequestAnalysisEquipment[ 1 ]
ListRequestAnalysisBlock[ 2 ].RequestAnalysisEquipment[ 2 ]
...
Рейтинг: 0 / 0
27.10.2014, 15:01
    #38788285
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
skyANA,

Эээээ, то есть
тут

Код: c#
1.
2.
3.
4.
<select name="institution[]"></select>
<select name="institution[]"></select>
<select name="institution[]"></select>
<select name="institution[]"></select>



необязательно порядковые номера проставлять ? А я мудохаюсь .... ((((
хотя ....
как же он определит если например есть

Код: c#
1.
2.
3.
4.
<select name="institution[].test[].aaa[]"></select>
<select name="institution[].test[].aaa[]"></select>
<select name="institution[].test[].aaa[]"></select>
<select name="institution[].test[].aaa[]"></select>




Надо попробовать .
...
Рейтинг: 0 / 0
27.10.2014, 15:12
    #38788298
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
skyANAAndrey1306, всё на самом деле просто:
Код: html
1.
2.
3.
4.
<select name="institution[]"></select>
<select name="institution[]"></select>
<select name="institution[]"></select>
<select name="institution[]"></select>


И на сервер постом уходит массив institution.

у меня при такой постановке , приходит масив из одного элемента.

а при такой 4

Код: html
1.
2.
3.
4.
<select name="institution[0]"></select>
<select name="institution[1]"></select>
<select name="institution[2]"></select>
<select name="institution[3]"></select>
...
Рейтинг: 0 / 0
19.02.2015, 16:22
    #38884186
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавление в динамике элементов на форму
skyANA,

До сих пор мучаюсь как Вы реализуете модели в которых есть списки

типа этого ? http://www.binaryintellect.net/articles/b1e0b153-47f4-4b29-8583-958aa22d9284.aspx


Код: 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.
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
    {
        <table border="1" cellpadding="6">
            @for (int i = 0; i < Model.Count;i++ )
            { 
                <tr>
                    <td>@Html.TextBox("customers[" + @i + "].CustomerID", 
                                      Model[i].CustomerID, 
                                      new { @readonly = "readonly" })</td>
                    <td>@Html.TextBox("customers[" + @i + "].CompanyName", 
                                      Model[i].CompanyName)</td>
                    <td>@Html.TextBox("customers[" + @i + "].ContactName", 
                                      Model[i].ContactName)</td>
                    <td>@Html.TextBox("customers[" + @i + "].Country", 
                                      Model[i].Country)</td>
                </tr>
            }
            <tr>
                <td colspan="4">
                    <input type="submit" value="Submit" />
                </td>
            </tr>
        </table>
    }




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


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