【问题标题】:How to programmatically set parameters for EntityDataSource and DetailsView?如何以编程方式为 EntityDataSource 和 DetailsView 设置参数?
【发布时间】:2009-06-28 01:06:25
【问题描述】:

我被难住了!

以编程方式为EntityDataSource 控件设置选择参数的最佳方法是什么?

具体来说,我想使用 Page.User.ProviderUserKey 来获取我拥有的自定义用户详细信息表中的记录,用于详细信息视图。

我见过使用asp:ControlParameter 从控件中提取值的代码,但这对于我的情况来说几乎是一种破解。我不想要一个额外的控件来设置参数值。

有什么想法吗?提前致谢!

【问题讨论】:

    标签: c# asp.net parameters detailsview entitydatasource


    【解决方案1】:

    如果创建自定义参数类型感觉工作量太大,您可以通过编程方式添加基本参数,如下所示:

    Parameter parameter = new Parameter("MyParam", TypeCode.String,
        Page.User.ProviderUserKey);
    MyDataSource.SelectParameters.Add(parameter);
    

    这样的东西应该可以满足您的需求。

    【讨论】:

    • 这只是给 Parameter 对象一个默认值 ProviderUserKey
    【解决方案2】:

    您可以创建自己的自定义参数:

    <my:CustomParameter Name="MyParam" />
    

    如何实现自定义参数的详细信息可以在Fredrik Normén's Blog 上找到。使用自定义参数与使用任何内置参数类型一样简单,但可以在 ScottGu's Blog 上找到一个快速示例。

    最简单的实现如下所示:

    public class CustomParameter : Parameter
    {
        protected override object Evaluate(HttpContext context, Control control)
        {
            // This is where you would grab and return
            // the Page.User.ProviderUserKey value
            return string.Empty;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多