Динамическое создание Grid Panel

44 views
Skip to first unread message

Саят Абузов

unread,
Jan 26, 2016, 12:57:19 AM1/26/16
to Ext.NET
Добрый день. Возникла необходимость динамически создавать колонки. Кол-во колонок, также как и кол-во строк неизвестно. Есть данные в БД в виде таблицы. К примеру у нас есть список строк в формате
id | ФИО | Дата | Оценка
Данные в поле ФИО повторяются. То есть на каждую дату ФИО повторяется.Необходимо даты выводить как колонки и соответственно значения в этих колонках будут "Оценка" для каждого ФИО. Грубо говоря нужен журнал. Прошу помочь советом или примером, где описывается данная реализация. Использую ext.net 2.1.1 + WebForms

Daniil Veriga

unread,
Jan 26, 2016, 2:49:00 AM1/26/16
to ext...@googlegroups.com
Добрый день.

Поясните, пожалуйста, в какой момент требуется добавление колонок. Если до момента создания/рендеринга грида (то есть колонки появляются изначально), то надо добавлять колонки в GridPanel1.ColumnModel.Columns. Например, как здесь:
http://examples2.ext.net/#/GridPanel/ArrayGrid/DirectEvent_Creation/

А если колонки надо добавлять на лету, то можно так, как здесь:
http://examples2.ext.net/#/GridPanel/ColumnModel/Reconfigure


With regards,
Daniil Veriga
--------------------------------------------
Object.NET, Inc.
Email   : dan...@object.net
Web     : http://object.net
Phone  : +7(905)2833877
--------------------------------------------

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

Саят Абузов

unread,
Jan 27, 2016, 1:16:47 AM1/27/16
to Ext.NET
Мне нужно на лету. Пробую GridPanel.InsertColumns(colNumber,column); в CodeBehind. Но на клиенте скрипт выдает ошибку. FireBug показывает левые символы: App.GridPanel.insertColumn(6,{\r\n  dataIndex: "Test",\r\n  text: "Test1"\r\n},true);

вторник, 26 января 2016 г., 11:57:19 UTC+6 пользователь Саят Абузов написал:

Daniil Veriga

unread,
Jan 27, 2016, 1:50:10 AM1/27/16
to ext...@googlegroups.com
Попробуйте, пожалуйста, убрать SourceFormatting="true" (у ResourceManager и/или в Web.config). Был такой баг.

With regards,
Daniil Veriga
--------------------------------------------
Object.NET, Inc.
Email   : dan...@object.net
Web     : http://object.net
Phone  : +7(905)2833877
--------------------------------------------

--

Саят Абузов

unread,
Jan 27, 2016, 3:31:50 AM1/27/16
to Ext.NET
Спасибо большое!Помогло

среда, 27 января 2016 г., 12:50:10 UTC+6 пользователь Daniil Veriga написал:

Саят Абузов

unread,
Jan 28, 2016, 6:31:14 AM1/28/16
to Ext.NET
Возник еще один вопрос. У меня есть строка в виде:"{\"Id\":\"9070ba77-58a8-421a-9cab-a59800949b6d\",\"Name\":\"test\", \"Surname\":\"test\",\"Patronymic\":\"test\",\"20.01.2016\":\"Видео материалы\",\"21.01.2016\":\"видео материалы и лекции\",\"22.01.2016\":\"Видео подборка\"}". При DataBind() данные не подставляются, в Store пишутся что данных нет. Не подскажите в какой формат(если можно с примером) нужно перевести эту строку. 

Daniil Veriga

unread,
Jan 28, 2016, 6:38:20 AM1/28/16
to ext...@googlegroups.com
Примерчик бы, чтобы воспроизвести проблему.

With regards,
Daniil Veriga
--------------------------------------------
Object.NET, Inc.
Email   : dan...@object.net
Web     : http://object.net
Phone  : +7(905)2833877
--------------------------------------------

2016-01-28 14:31 GMT+03:00 Саят Абузов <abu...@gmail.com>:
Возник еще один вопрос. У меня есть строка в виде:"{\"Id\":\"9070ba77-58a8-421a-9cab-a59800949b6d\",\"Name\":\"test\", \"Surname\":\"test\",\"Patronymic\":\"test\",\"20.01.2016\":\"Видео материалы\",\"21.01.2016\":\"видео материалы и лекции\",\"22.01.2016\":\"Видео подборка\"}". При DataBind() данные не подставляются, в Store пишутся что данных нет. Не подскажите в какой формат(если можно с примером) нужно перевести эту строку. 

--

Саят Абузов

unread,
Jan 28, 2016, 7:04:02 AM1/28/16
to Ext.NET
<ext:GridPanel runat="server" Layout="FitLayout" ID="SemesterGridPanel">
                            <Store>
                                <ext:Store ID="Store1"
                                    runat="server">

                                    <Model>
                                        <ext:Model ID="Model1" runat="server" IDProperty="Id">
                                            <Fields>
                                                <ext:ModelField Name="Id" />
                                                <ext:ModelField Name="Name" />
                                                <ext:ModelField Name="Surname" />
                                                <ext:ModelField Name="Patronymic" />
                                            </Fields>
                                        </ext:Model>
                                    </Model>
                                    <Reader >
                                        <ext:JsonReader Root="data"/>
                                    </Reader>
                                </ext:Store>
                            </Store>
                            <ColumnModel ID="ColumnModel1" runat="server">
                                <Columns>
                                    <ext:Column ID="Name" runat="server" Text="Имя" DataIndex="Name">
                                    </ext:Column>
                                    <ext:Column ID="Surname" runat="server" Text="Фамилия" DataIndex="Surname">
                                    </ext:Column>
                                    <ext:Column ID="Patronymic" runat="server" Text="Отчество" DataIndex="Patronymic">
                                    </ext:Column>
                                </Columns>
                            </ColumnModel>
                            <Plugins>
                                <ext:CellEditing ID="CellEditing1" runat="server" ClicksToEdit="1" />
                            </Plugins>
                        </ext:GridPanel>
Это на разметке.

В Code-behind генерирую еще колонки и поля в modelField
 //тут вставляю нужное кол-во колонок и полей в Model
 foreach (var ctpContentDto in ctpContData)
                {
                    string insertValue = ctpContentDto.StartDate.Day.ToString() + "-" + ctpContentDto.StartDate.Month + " " + ctpContentDto.StartDate.DayOfWeek.ToString();
                    var column = new Ext.Net.Column() {  Text = string.Format("{0}", insertValue), DataIndex = ctpContentDto.StartDate.Day + " " + ctpContentDto.StartDate.Month + " " + ctpContentDto.StartDate.Year };


                    var model = new ModelField() { Name = string.Format("{0}", insertValue) };
                    this.Store1.AddField(model);
                    this.Store1.Model[0].Fields.Insert(colNumber, model);
                    this.SemesterGridPanel.InsertColumn(colNumber, column, true);
                    colNumber++;
                }
var resData = new List<object>();
                string json;
                foreach (var dataStudent in dataStudents)
                {
                    
                    json = string.Format("{{\"Id\":\"{3}\",\"Name\":\"{0}\", \"Surname\":\"{1}\",\"Patronymic\":\"{2}\"", dataStudent.Name, dataStudent.Surname, dataStudent.Patronymic, dataStudent.Id);
                    foreach (var ctpContentDto in ctpContData)
                    {
                        var str = ",\"" + ctpContentDto.StartDate.Day + " " + ctpContentDto.StartDate.Month + " " + ctpContentDto.StartDate.Year + "\":\"" + ctpContentDto.LessonTutorial + "\"";
                        json += str;
                    }
                    json += "}";
                    resData.Add(json);

                }
                
                Store1.DataSource = resData;
                Store1.DataBind();

четверг, 28 января 2016 г., 17:38:20 UTC+6 пользователь Daniil Veriga написал:

Daniil Veriga

unread,
Jan 28, 2016, 8:31:56 AM1/28/16
to ext...@googlegroups.com
Спасибо. Но я его не запущу. Мне бы запустить и увидеть проблему воочию. Можете упростить что-то. Главное суть проблемы продемонстрируйте, пожалуйста.

With regards,
Daniil Veriga
--------------------------------------------
Object.NET, Inc.
Email   : dan...@object.net
Web     : http://object.net
Phone  : +7(905)2833877
--------------------------------------------

Саят Абузов

unread,
Jan 28, 2016, 10:25:41 AM1/28/16
to Ext.NET
получается из бд тянутся строки в виде FIO | Date| Rate| . Где FIO - повторяющиеся значения. К пример {"Ivanov Ivan", "20.09.2015" }{"Ivanov Ivan", "21.09.2015" }{"Ivanov Ivan", "22.09.2015" } {"Sidorov Sidor", "20.09.2015" }{"Sidorov Sidor", "21.09.2015" }{"Sidorov Sidor", "22.09.2015" }и тд. Вот мне необходимо формировать столько колонок, сколько значений в поле Date - это у меня получилось. Теперь я формирую строку для  Ivanov Ivan с 4 колонками в GridPanel ('FIO', '20.09.2015','21.09.2015','22.09.2015') и также для других. Пытаюсь подставить значение в Grid но не получается, ошибок не пишет, но и данные пустые. Видим как-то не так формирую данные
 
четверг, 28 января 2016 г., 19:31:56 UTC+6 пользователь Daniil Veriga написал:

Саят Абузов

unread,
Jan 28, 2016, 11:33:56 PM1/28/16
to Ext.NET
У меня получается LIst из строк такого вида. 

{\"Id\":\"9070ba77-58a8-421a-9cab-a59800949b6d\",\"Name\":\"test\", \"Surname\":\"test\",\"Patronymic\":\"test\",\"20.01.2016\":\"Видео материалы\",\"21.01.2016\":\"видео материалы и лекции\",\"22.01.2016\":\"Видео подборка\"}
четверг, 28 января 2016 г., 21:25:41 UTC+6 пользователь Саят Абузов написал:
Reply all
Reply to author
Forward
0 new messages