首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过编程改变SelectMethod of ObjectDataSource?

如何通过编程改变SelectMethod of ObjectDataSource?
EN

Stack Overflow用户
提问于 2011-04-25 00:42:48
回答 3查看 15.2K关注 0票数 3

假设我有一个给定的ObjectDataSource,这个对象数据源"SelectMethod“属性被设置为一个类项目的"GetProjectsByUsername”,并接受一个参数。

代码语言:javascript
复制
 <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

或者我在想有没有其他更好的方法来做这件事。

谢谢你,并向你问好,谢温

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-25 00:48:58

尝尝这个

代码语言:javascript
复制
 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);
票数 3
EN

Stack Overflow用户

发布于 2011-04-25 05:53:13

是的,您可以在代码隐藏文件中的OnSelecting事件中执行此操作。

例如。

代码语言:javascript
复制
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

  1. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.selecting%28v=vs.90%29.aspx
  2. http://www.asp.net/data-access/tutorials/programmatically-setting-the-objectdatasource-s-parameter-values-vb

希望这会有帮助..。

编程愉快!

票数 5
EN

Stack Overflow用户

发布于 2011-04-25 00:46:25

你试过C#码吗?不要在aspx标记中定义它,而是转到代码隐藏文件,并在那里执行它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5774224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档