【发布时间】:2020-03-16 18:20:25
【问题描述】:
我对 GridPanel 有一些问题。表 Request 中的列 Brigade 是一个外键。如何显示组合框以更改此字段?此代码显示组合框,但值未设置为 GridPanel 中的字段。当我尝试更改某些字段时 AutoAsync() 得到一个异常 - 状态代码 500。
@model IEnumerable<GeoSystem.Models.Request>
@(Html.X().Store()
.ID("BrigadeStore")
.Model(Html.X().Model()
.Fields(
new ModelField("id", ModelFieldType.Int) { Mapping = "BrigadeID" },
new ModelField("name", ModelFieldType.String) { Mapping = "BrigadeName" }
)
)
.Proxy(Html.X().AjaxProxy()
.Url(Url.Action("GetBrigades"))
.Reader(Html.X().JsonReader().RootProperty("data"))
)
)
@(Html.X().GridPanel()
.ID("GridPanelRequest")
.Store(
Html.X().StoreForModel().ID("StoreRequest")
.AutoSync(true)
.ShowWarningOnFailure(false)
.SyncUrl(Url.Action("RequestHandleChanges"))
)
.Icon(Icon.Table)
.Frame(true)
.Title("Заявки")
.Height(430)
.Width(500)
.StyleSpec("margin-top: 10px;")
.ColumnModel(
Html.X().ColumnFor(Model, m => m.RequestName)
.ToBuilder<Column.Builder>()
.Flex(1)
.Editor(
Html.X().TextField().AllowBlank(false)
),
Html.X().ColumnFor(Model, m => m.Start)
.ToBuilder<Column.Builder>()
.Flex(1)
.Editor(
Html.X().TextField().AllowBlank(false)
),
Html.X().ColumnFor(Model, m => m.Brigade.BrigadeName)
.ToBuilder<Column.Builder>()
.Flex(1)
.Editor(
Html.X().ComboBox()
.QueryMode(DataLoadMode.Remote)
.TriggerAction(TriggerAction.All)
.StoreID("BrigadeStore")
.ValueField("id")
.DisplayField("name")
)
)
.Plugins(
Html.X().CellEditing()
)
)
【问题讨论】:
-
500 代表“内部服务器错误”。您可以添加异常详细信息吗?
-
我试试
var onStoreException = function (proxy, response, operation) { var error = operation.getError(), message = Ext.isString(error) ? error : ('(' + error.status + ')' + error.statusText); Ext.net.Notification.show({ iconCls: 'icon-exclamation', html: message + "\n<br /><b>Proxy type:</b> " + proxy.type, title: 'EXCEPTION', scrollable: 'both', hideDelay: 5000, width: 300, height: 200 }); }; -
.Listeners(l => { l.Exception.Fn = "onStoreException"; l.Exception.Buffer = 10; })但没什么可显示的。
标签: asp.net-mvc ext.net