FineUI 官方论坛
标题:
这种异常一般什么情况下回发生?
[打印本页]
作者:
hcp
时间:
2016-1-3 10:52
标题:
这种异常一般什么情况下回发生?
本帖最后由 hcp 于 2016-1-3 10:57 编辑
尝试在PageInit事件里为表格列动态创建Filter,代码:
if (grid.AllowFilters)
{
if (!col.EnableFilter) continue;
col.Filter.EnableMultiFilter = true;
switch (c.DataType)
{
case ColDataType.String:
col.Filter.Operator.Add(CreateStringOperator());
col.Filter.Field.Add(CreateStringField());
break;
case ColDataType.DateTime:
col.Filter.Operator.Add(CreateNumericOrDateOperator());
col.Filter.Field.Add(CreateDateField());
break;
case ColDataType.Int:
col.Filter.Operator.Add(CreateNumericOrDateOperator());
col.Filter.Field.Add(CreateFieldInt());
break;
case ColDataType.Float:
col.Filter.Operator.Add(CreateNumericOrDateOperator());
col.Filter.Field.Add(CreateFieldFloat());
break;
case ColDataType.Bool:
col.Filter.EnableMultiFilter = false;
col.Filter.Field.Add(CreateBoolField());
break;
default:
break;
}
}
复制代码
在aspx里把列的EnableFilter属性设置为true的话就会报以下异常:
[KeyNotFoundException: 给定关键字不在字典中。]
System.Collections.Generic.Dictionary`2.get_Item(TKey key) +11770241
FineUIPro.FState.OjseAobIYmgIEDyRgSqSTUcJUgsAA() +167
(FState ) +31
FineUIPro.ControlBase.OnPreRender(EventArgs e) +399
System.Web.UI.Control.PreRenderRecursiveInternal() +88
System.Web.UI.Control.PreRenderRecursiveInternal() +160
System.Web.UI.Control.PreRenderRecursiveInternal() +160
System.Web.UI.Control.PreRenderRecursiveInternal() +160
System.Web.UI.Control.PreRenderRecursiveInternal() +160
System.Web.UI.Control.PreRenderRecursiveInternal() +160
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4775
但是如果在代码里直接把列的EnableFilter属性值设置为true,如下就正常了:
if (grid.AllowFilters)
{
col.EnableFilter = true;
col.Filter.EnableMultiFilter = true;
switch (c.DataType)
{
.....
}
}
复制代码
想请教一下这是为什么,如何才能在aspx中设置属性不报错?
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4