找不到System.Web.UI.Design.ExpressionEditor?
首先是来自MSDN的说明:
通常,若要在设计时支持新的表达式类型,需要定义一个唯一的表达式前缀并提供自定义的 ExpressionBuilder 和 ExpressionEditor 实现。您可以选择提供自定义 ExpressionEditorSheet 实现,该实现定义用于在表达式对话框中构成表达式的属性。
表达式前缀标识自定义表达式类型,并将表达式与表达式生成器和表达式编辑器关联。当在页中分析自定义表达式时,表达式前缀用于创建关联的 ExpressionBuilder 和 ExpressionEditor 类的实例。若要将表达式前缀与表达式生成器和表达式编辑器关联,请将 ExpressionEditorAttribute 和 ExpressionPrefixAttribute 属性应用到自定义 ExpressionBuilder 类,并为 Web 配置文件中 expressionBuilders 元素中的表达式生成器配置表达式前缀。该前缀不是必需的,但强烈建议您配置它。
给继承者的说明 派生自定义 ExpressionEditor 类时需要下列步骤:
-
重写 EvaluateExpression 方法以在设计时计算自定义表达式类型。
-
您可以选择重写 GetExpressionEditorSheet 方法来返回自定义类,该自定义类定义组合以形成自定义表达式的属性。
-
在 ExpressionBuilder 类声明上应用 ExpressionEditorAttribute 属性,以将自定义表达式生成器和派生的表达式编辑器类关联。
示例(其实比MSDN的示例还要简单一些,但是结构是完全一样的):





























PS:请注意标注为红色部分的代码(System.Web.UI.Design.ExpressionEditor)
但是奇怪的很,编译总是通不过,提示说:
The type or namespace name 'ExpressionEditor' does not exist in the namespace 'System.Web.UI.Design' (are you missing an assembly reference?)
可是MSDN上面明明写着就是这个命名空间啊?怎么回事呢?大家试一下,看看有没有这个问题啊?