She*_*win 3 c# asp.net objectdatasource
假设我有一个给定的ObjectDataSource,这个objectdatasource"SelectMethod"属性被设置为类Project的"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>
Run Code Online (Sandbox Code Playgroud)
现在,是否可以将此ObjectDataSource的SelectMethod属性更改为在OnInit方法期间接受两个参数的方法?例如
MethodName:GetProjectByUsernameDeptCd()
参数:Username,DepartmentCode
我想通过用户角色更改select方法.我试图搜索SO和互联网,但似乎我没有运气.无论如何我想做的事情如下:
if(Role is Admin)
使用在ASPX中声明的默认SelectMethod和Parameters
else
将SelectMethod更改为"GetProjectByUsernameDeptCd"
设置parameter1 = value1
设置parameter2 = value2
或者我在想是否还有其他更好的方法可以做到这一点.
谢谢你,最诚挚的问候,Sherwin
是的,您可以在代码隐藏文件中的ObjectDataSource 的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");
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请阅读以下文章:1.http: //weblogs.asp.net/rajbk/pages/426642.aspx
希望这会有所帮助..
快乐编程!
| 归档时间: |
|
| 查看次数: |
14520 次 |
| 最近记录: |