【问题标题】:Sharepoint 2010 Custom New Form use ASP.NET controls instead of Sharepoint controlsSharepoint 2010 自定义新表单使用 ASP.NET 控件而不是 Sharepoint 控件
【发布时间】:2012-01-23 15:20:56
【问题描述】:

我有一个简单的列表,我使用 Sharepoint:FormField 创建了一个新项目表单以将列表数据绑定到字段,但我也想知道是否有一种方法可以使用 asp.net 控件来创建表单。

我的问题是我有 2 个级联下拉列表框实现为 asp.net 控件 项目名称 - 项目模块 实现我的业务逻辑,我想将它们绑定到列表数据。

谢谢!

我的测试项目的详细说明: 我想建立一个列表,允许团队成员报告在项目中花费的时间,在项目模块上工作。

所以我创建了一个列表,其中包含几个项目和几个项目模块。带有项目名称的单个文本列,以及包含所有项目工作项的多行文本列。

我创建了另一个列表(时间管理),其中应该包含实际的时间报告数据: 一个用户列、一个日期列、一个小时数列、一个项目名称、一个项目模块。

之后我想更改时间管理列表上的新表单以包含 2 个级联下拉框,允许用户选择项目名称,然后选择项目工作项,因此我创建了一个新的可视 Web 部件和仅添加了 2 个带有一些自定义逻辑的下拉框以链接到项目列表并检索数据:

我的 .ascx 代码:

Project Name:<asp:DropDownList ID="ProjectName" runat="server" 
AutoPostBack="true" onselectedindexchanged="ProjectName_SelectedIndexChanged" />
Project Module:<asp:DropDownList ID="ProjectModule" runat="server" />
<SharePoint:SaveButton ID="btnSave" runat="server" ControlMode="New" /> 
<SharePoint:GoBackButton ID="btnBack" runat="server" />

问题在于 2 个下拉列表未绑定到新项目对象;相反,我使用的所有示例都使用自动处理绑定的 SharePoint:FormField 控件,我想知道是否可以直接在 asp 控件上自己进行绑定。

我在这里找到了一个关于 asp 控件上的数据绑定的有趣链接:Is there a good reference SharePoint's databinding syntax? 但它对初学者不友好。

【问题讨论】:

    标签: sharepoint-2010


    【解决方案1】:

    SharePoint 构建在 ASP.NET 之上,因此您可以在 ASP 中执行的几乎所有操作都可以在 SharePoint 中执行。就个人而言,我在我从事的大多数项目(或者至少是我认为更好的项目)中都使用了两者的良好组合。如果您来自 ASP 背景并且对此比较熟悉,那么您基本上可以创建一个 ASP 网站,然后在各处添加一些与 SharePoint 相关的东西,相当有效。

    至于您的特定问题。我个人不喜欢使用实际的数据绑定方法。我更喜欢自己将项目添加到控件中。这意味着在 page_load 方法后面的代码中,我将通过它查询列表(或您拥有数据的任何地方)并将项目添加到下拉列表中。如果您想在控件上使用 ASP.NET 样式的数据绑定,那也没什么不同。

    【讨论】:

    • 感谢您的回复。我的意思是,sharepoint 是建立在 asp.net 之上的,所以我可以在 asp 中复制“绑定”(可能是一堆 javascript、命名约定和服务器端代码)。问题是..这里有没有人知道我需要添加什么才能将asp.net控件(最终转换为html字段)绑定到sharepoint数据模型,以便我可以在表单和功能区上使用sharepoint保存按钮?
    • 当您尝试对开箱即用的共享点 (OOB) 表单进行大量自定义时,它会变得有些困难。如果您有一个单独的页面或页面的另一个部分不需要与 OOB 表单进行交互,那么这很容易,但是当它发生时就更难了。在我看来,您可能想要走的路是使用“自定义字段类型”。它基本上可以让您为列表创建自己的列类型。可以重写列的渲染方法、值的保存方法等。可以在网上找到教程,或者有问题随时咨询。
    【解决方案2】:

    您可以使用自定义信息路径列表表单相对轻松地实现级联下拉菜单。查看详情here

    请参阅this 示例以了解如何使用级联下拉菜单。

    编辑:

    我想知道我是否可以使用asp控件,如果我可以如何绑定它们

    是的。新项目表单基本上是一个 aspx 页面,您可以使用 asp.net 控件或第三方控件,如 Telerik、infragistics 等。您可以通过内联代码或使用代码隐藏文件绑定数据并使用事件处理程序。不过,在 SP 设计器中编写代码不会是一种愉快的体验。

    【讨论】:

    • 感谢您的回答。我还发现了一些可以做同样事情的自定义控件。但我的问题与级联下拉菜单并不严格相关。我想知道我是否可以使用asp控件,如果我可以如何绑定它们。
    • 嗨。那么好消息。如果可能,请提供一个示例或参考,说明如何内联/或在代码中绑定数据。我不打算使用 SP 设计器,而是使用 Visual Studio。我最初的想法是创建一个可视化 Web 部件来重绘新项目表单。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    相关资源
    最近更新 更多