我难住了!
EntityDataSource
以编程方式为控件设置选择参数的最佳方法是什么?
具体来说,我想使用 Page.User.ProviderUserKey 在我拥有的自定义用户详细信息表中获取详细信息视图的记录。
我见过使用asp:ControlParameter
来从控件中提取值的代码,但这对于我的情况来说几乎是一种破解。我不想要一个额外的控件来设置参数值。
有任何想法吗?提前致谢!
我难住了!
EntityDataSource
以编程方式为控件设置选择参数的最佳方法是什么?
具体来说,我想使用 Page.User.ProviderUserKey 在我拥有的自定义用户详细信息表中获取详细信息视图的记录。
我见过使用asp:ControlParameter
来从控件中提取值的代码,但这对于我的情况来说几乎是一种破解。我不想要一个额外的控件来设置参数值。
有任何想法吗?提前致谢!
您可以创建自己的自定义参数:
<my:CustomParameter Name="MyParam" />
可以在Fredrik Normén 的博客上找到有关如何实现自定义参数的详细信息。使用自定义参数与使用任何内置参数类型一样简单,但可以在ScottGu 的博客上找到一个快速示例。
最简单的实现如下所示:
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;
}
}
如果创建自定义参数类型感觉工作量太大,您可以通过编程方式添加基本参数,如下所示:
Parameter parameter = new Parameter("MyParam", TypeCode.String,
Page.User.ProviderUserKey);
MyDataSource.SelectParameters.Add(parameter);
像这样的东西应该给你你需要的东西。