#c# #asp.net #ext.net
#c# #asp.net #ext.net
Вопрос:
Я пытаюсь создать GridPanel программно, используя LinqDataSource, как показано в примерах.
Пока я вижу свою пустую сеточную панель без каких-либо данных внутри, потому что в моей сеточной панели отсутствует columnModel, используемая для отображения данных.
Поскольку я не могу найти правильный метод для добавления columnModel в GridPanel, я должен спросить вас.
Мой код, который используется для создания моей панели сетки, и все остальное находится под ней.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace IntraNET_Prototype
{
public partial class MitarbeiterUndTelefonliste : System.Web.UI.Page
{
public LinqDataSource MitarbeiterDataSource = new LinqDataSource();
public Ext.Net.GridPanel MitarbeiterGridPanel = new Ext.Net.GridPanel();
public Ext.Net.Store MitarbeiterStore = new Ext.Net.Store();
public Ext.Net.JsonReader MitarbeiterJSONReader = new Ext.Net.JsonReader();
public Ext.Net.ColumnModel MitarbeiterColumnModel = new Ext.Net.ColumnModel();
public MitarbeiterUndTelefonliste()
{
}
protected void Page_Load(object sender, EventArgs e)
{
MitarbeiterDataSource.ID = "MitarbeiterDataSource";
MitarbeiterDataSource.ContextTypeName = "MitarbeiterlisteEntities";
MitarbeiterDataSource.TableName = "Mitarbeiterliste";
MitarbeiterGridPanel.ID = "MitarbeiterGridPanel";
MitarbeiterGridPanel.Title = "MitarbeiterListe";
MitarbeiterGridPanel.AutoWidth = true;
MitarbeiterGridPanel.Frame = true;
MitarbeiterGridPanel.Height = 570;
MitarbeiterStore.ID = "MitarbeiterStore";
MitarbeiterStore.DataSource = MitarbeiterDataSource;
MitarbeiterColumnModel.ID = "MitarbeiterColumnModel";
MitarbeiterColumnModel.Columns.Add(new Ext.Net.Column() { DataIndex = "primaerschluessel", Header = "Index", Width = 50 });
MitarbeiterJSONReader.Fields.Add(new Ext.Net.RecordField() { Name = "primaerschluessel" });
MitarbeiterGridPanel.Store.Add(MitarbeiterStore);
this.Form.Controls.Add(MitarbeiterGridPanel);
}
}
}
Заранее спасибо за любую помощь! Я ценю любые предложения, критику и любую помощь!
Ответ №1:
Вы не можете назначить некоторую модель столбца сетке. Потому что это свойство доступно только для чтения.
Вы должны использовать MitarbeiterGridPanel .columnModel.Columns.Add() вместо MitarbeiterColumnModel .Columns.Add()
Комментарии:
1. Спасибо за ваш ответ, это ключ! Но только для моего понимания, не немного ли странно идти этим путем вместо добавления модели столбцов, как вы должны делать наоборот в дизайне .aspx ?!
2. Это сделано потому, что Ext.NET и ExtJS не дают никакой настройки columnModel. Они предоставляют вам пользовательские столбцы, но не пользовательскую columnModel . И, по моему опыту, это никогда не вызывало проблем.