如何以编程方式设置EntityDataSource和DetailsView的参数?

时间:2009-06-28 01:06:25

标签: c# asp.net parameters detailsview entitydatasource

我很难过!

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

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

我已经看到使用asp:ControlParameter从控件中提取值的代码,但这几乎看起来像是我的情况。我不想要额外的控制来设置参数值。

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

2 个答案:

答案 0 :(得分:1)

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

<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;
    }
}

答案 1 :(得分:1)

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

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

这样的事情应该能满足你的需求。