FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 3650|回复: 0
打印 上一主题 下一主题

这种异常一般什么情况下回发生?

[复制链接]
跳转到指定楼层
楼主
发表于 2016-1-3 10:52:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hcp 于 2016-1-3 10:57 编辑

尝试在PageInit事件里为表格列动态创建Filter,代码:
  1. if (grid.AllowFilters)
  2.                 {
  3.                     if (!col.EnableFilter) continue;
  4.                     col.Filter.EnableMultiFilter = true;
  5.                     switch (c.DataType)
  6.                     {
  7.                         case ColDataType.String:
  8.                             col.Filter.Operator.Add(CreateStringOperator());
  9.                             col.Filter.Field.Add(CreateStringField());
  10.                             break;
  11.                         case ColDataType.DateTime:
  12.                             col.Filter.Operator.Add(CreateNumericOrDateOperator());
  13.                             col.Filter.Field.Add(CreateDateField());
  14.                             break;
  15.                         case ColDataType.Int:
  16.                             col.Filter.Operator.Add(CreateNumericOrDateOperator());
  17.                             col.Filter.Field.Add(CreateFieldInt());
  18.                             break;
  19.                         case ColDataType.Float:
  20.                             col.Filter.Operator.Add(CreateNumericOrDateOperator());
  21.                             col.Filter.Field.Add(CreateFieldFloat());
  22.                             break;
  23.                         case ColDataType.Bool:
  24.                             col.Filter.EnableMultiFilter = false;
  25.                             col.Filter.Field.Add(CreateBoolField());
  26.                             break;
  27.                         default:
  28.                             break;
  29.                     }
  30.                 }
复制代码


在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,如下就正常了:
  1. if (grid.AllowFilters)
  2. {
  3.     col.EnableFilter = true;
  4.     col.Filter.EnableMultiFilter = true;
  5.     switch (c.DataType)
  6.     {
  7.         .....
  8.     }
  9. }
复制代码
想请教一下这是为什么,如何才能在aspx中设置属性不报错?





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-15 15:53 , Processed in 0.043020 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表