【问题标题】:Custom ASP binding mechanism problem自定义ASP绑定机制问题
【发布时间】:2011-06-10 15:41:56
【问题描述】:

知道 ASP 大约 6 个月,我已经解决了难题。我已经创建了自己的 DataBinding 机制,我需要一些解决方案来做这样的事情:

我的 ASPX 中有这个示例代码

<myButton id="someID" runat="server" Text="SomeText" BackColor="{SomeContext}" />

并且我在此控件中有我的 Object 类型的属性 Context。我想将 Context 内的属性绑定到 BackColor 属性。 Context 中的属性名称是 SomeContext(在括号中)。我只需要使用一些 TypeConverter 或其他技术来识别 {} 内部有一个名称,并记住 myButton 实例中的该名称控制。有什么想法???

我认为我可以使用从 TypeConverter 继承的自己的类,并抓住将值 {SomeContext} 转换为颜色的时刻(BackColor 财产)。我可以抓住这一刻,但我没有关于目标控制的信息,只有字符串值的空上下文。如果有人知道如何以某种方式获得目标财产,那就太好了!有帮助。

我一直在网上搜索,什么都没有……

【问题讨论】:

  • 为什么常规数据绑定表达式不起作用:()?

标签: asp.net data-binding binding


【解决方案1】:

您可以直接在后面的代码中设置:

someID.BackColor = context.Color;

【讨论】:

  • 是的,但我没有在当前项目中使用代码隐藏。所以也许还有别的……?
【解决方案2】:

你可以试试 ASP.NET Custom Expression builders

【讨论】:

    【解决方案3】:

    我不会在我的项目中使用代码隐藏。网站将从数据库中编译的自定义 aspx 呈现。我对我的系统有特殊的方法,我的绑定是它的主要部分。常规数据绑定表达式无济于事,因为它使用 ASP 绑定,我不想使用。

    【讨论】:

    • 自定义表达式构建器可能会有所帮助。我会检查一下,并在此处发布答案。
    • 不幸的是,表达式在这里无济于事。我需要一些 c# 解决方案,例如 TypeConverter 或如何生成 IL (如 ASP 表达式),但使用由我的类控制的 IL 代码或我编写的其他内容。所以我认为这里会帮助反射,但是如何呢?
    【解决方案4】:

    不幸的是,我没有找到任何解决问题的方法,所以我决定使用内部属性。我将使用这样的 ASPX 代码:

    <myButton runat="server" ID="someID">
        <Binding>
           <Bind Target="BackColor" Source="ColorOfBackgroundFromContext" />
           <Bind Target="ForColor" Source="ColorOfForegroundFromContext" />
        </Binding>  
    </myButton>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 2011-12-22
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      相关资源
      最近更新 更多