Visual Web 部件是否支持设计器中的 ObjectDataSource?

发布于 2024-09-10 01:19:37 字数 1064 浏览 1 评论 0原文

我正在尝试使用 Visual Studio 2010 中内置的 Web 部件项目将一些 Sharepoint 2007 Web 部件升级到 SP2010。也就是说,我正在使用 Visual Web 部件来迁移我们现有的控件,这些控件广泛使用了 ObjectDataSource。但是,当将 ODS 添加到 Visual Web Part 项目中的控件时,它不会选取引用的类库项目中的对象。我能够从干净的设置中复制问题,如下所示:

  1. 创建新的 Visual Web 部件

  2. 向解决方案添加新的类库。

  3. 类代码如下:

using System; 使用 System.Collections.Generic; 使用 System.Linq; 使用系统文本;

namespace WebPartODS
{
  [System.ComponentModel.DataObject(true)]
  public class TestUser
  {
    [System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select,false)]
    public List<int> TestMethod()
    {
      return new List<int>();
    }
  }
}
  1. 将类库项目添加为 Web 部件项目中的引用

  2. 在 VisualWebPart ascx 文件中,在“源”视图中添加一个 objectdatasource:

ce>

  1. 切换到设计视图,调出“配置数据源”向导。在下拉列表中,库项目中的类不会出现。

我在这里缺少一个步骤,或者尝试这样做有问题吗?

I'm trying to upgrade some Sharepoint 2007 webparts to SP2010 using the web part projects built into Visual Studio 2010. Namely, I'm using Visual Web Part to migrate our existing controls, which make extensive use of ObjectDataSource. However, when adding an ODS to the control in the Visual Web Part project, it will not pick up objects in referenced class library projects. I was able to duplicate the problem from a clean setup as follows:

  1. Create a new Visual Web Part

  2. Add a new class library to the solution.

  3. Class code is as follows:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WebPartODS
{
  [System.ComponentModel.DataObject(true)]
  public class TestUser
  {
    [System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select,false)]
    public List<int> TestMethod()
    {
      return new List<int>();
    }
  }
}
  1. Add the class library project as a reference in the Web Part project

  2. In the VisualWebPart ascx file, add a objectdatasource in the Source view:

<asp:ObjectDataSource ID="TestOD" runat="server"></asp:ObjectDataSource>

  1. Switch to Design view, bring up the "Configure data source" wizard. On the drop down, the class from the library project will not appear.

Is there a step that I am missing here, or is there an issue with trying to do it this way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜雨飘雪 2024-09-17 01:19:37

好的,我已经开始工作了。这是我得到答案的地方: MSDN 论坛

我最初为我的业务层提供了一个单独的类。我删除了它并将代码放入 ascx.cs 文件中。然后我将以下代码行添加到我的页面加载方法中。

ObjectDataSource1.TypeName = this.GetType().AssemblyQualifiedName;

我还从 ascx 页面中删除了 TypeName

Ok, i got it to work. Here is where i got my answer: MSDN Forumn

I originally had a separate class for my business layer. I removed it and put my code in the ascx.cs file. Then I added the following line of code to my page load method.

ObjectDataSource1.TypeName = this.GetType().AssemblyQualifiedName;

I also removed the TypeName from the ascx page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文