假设我有一个给定的ObjectDataSource,这个对象数据源"SelectMethod“属性被设置为一个类项目的"GetProjectsByUsername”,并接受一个参数。
<asp:ObjectDataSource ID="GetProjectsDataSource" runat="server" SelectMethod="GetProjectsByUsername"
TypeName="BusinessLayer.Project">
<SelectParameters>
<asp:ControlParameter ControlID="hiddenUsername" Name="username" PropertyName="Value"
Type="String" />
</SelectParameters>
</asp:ObjectDataSource>现在,是否可以将此SelectMethod属性更改为在OnInit方法期间接受两个参数的方法?例如
MethodName : GetProjectByUsernameDeptCd()
参数:用户名,DepartmentCode
我想按用户角色更改select方法。我已经尝试过搜索和上网,但似乎我没有运气。不管怎样,我想做的是:
if (角色是管理)
使用在ASPX中声明的默认SelectMethod和参数。
否则
将SelectMethod更改为"GetProjectByUsernameDeptCd“
集合parameter1 = value1
集合parameter2 = value2
或者我在想有没有其他更好的方法来做这件事。
谢谢你,并向你问好,谢温
发布于 2011-04-25 00:48:58
尝尝这个
GetProjectsDataSource.SelectMethod = "GetProjectByUsernameDeptCd";
Parameter p1 = new Parameter("parameter1 ",TypeCode.String);
Parameter p2 = new Parameter("parameter2 ",TypeCode.String);
GetProjectsDataSource.SelectParameters.Add(p1);
GetProjectsDataSource.SelectParameters.Add(p2);发布于 2011-04-25 05:53:13
是的,您可以在代码隐藏文件中的OnSelecting事件中执行此操作。
例如。
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
ObjectDataSource1.SelectMethod = "<YourSelectMethod>";
e.InputParameters.Clear(); // this is a different method with new parameters.
e.InputParameters.Add("Param1", "Value1");
e.InputParameters.Add("Param2", "Value2");
e.InputParameters.Add("Param3", "Value3");
}详情请参阅以下文章: 1. http://weblogs.asp.net/rajbk/pages/426642.aspx
希望这会有帮助..。
编程愉快!
发布于 2011-04-25 00:46:25
你试过C#码吗?不要在aspx标记中定义它,而是转到代码隐藏文件,并在那里执行它。
https://stackoverflow.com/questions/5774224
复制相似问题