【问题标题】:ObjectdataSource: Cannot use wizard when a Method parameter is an enum [closed]ObjectdataSource:当方法参数是枚举时无法使用向导[关闭]
【发布时间】:2012-06-20 12:20:32
【问题描述】:

这是我的问题。

我有一个用 DataObject 装饰的 Factory 类和一个用 Select 装饰的 Systems 方法。它有一个参数是一个枚举创建的,所以它看起来像:

命名空间 BLL {

[DataObject]
public class Factory {


    [DataObjectMethod(DataObjectMethodType.Select)]
    public List<WaterSystem> Systems(PermissionLevel permission) {

        ...
    }
}

}

我的问题是,每当我尝试将此方法与 Objectdatasource 向导一起使用时,都会崩溃……实际上,它什么也没做。我能够选择我的 BusinessObject,Factory,它没有做任何其他事情,当我应该选择 select 方法时它消失了。

我已经测试过,只有当参数是枚举时才会发生。我能做什么?

我的总体想法是,枚举将代表我想赋予要获取的数据的可见性级别,所以我需要它或可替换的东西。

【问题讨论】:

    标签: c# .net objectdatasource


    【解决方案1】:

    Sergio,我今天不得不处理这种情况,我能够成功地在 &lt;SelectParameters&gt; 集合中以声明方式配置枚举值:

    <asp:Parameter Name="permission" Type="Object" DefaultValue="ReadOnly" />
    

    似乎重要的是DefaultValue 属性中提到的枚举值是枚举键的文本表示。如果必须动态分配此值,您可以使用具有几乎相同属性的&lt;asp:ControlParameter /&gt;

    注意:这里的“ReadOnly”值是根据我对PermissionLevel 枚举类型实现的假设。

    public enum PermissionLevel { ReadOnly, Modify }
    

    【讨论】:

      【解决方案2】:

      好吧,事实证明,我只是不必依赖向导来完成它。我最终手动完成。我只在 objectdatasource 和选择事件上指定了参数名称,我设置了参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-18
        相关资源
        最近更新 更多