【发布时间】:2015-11-04 01:05:16
【问题描述】:
我有以下情况。我们正在为我们的公司建立一个新的 Intranet,作为一个慈善机构,实现 AA 可访问性是必须的。我是一名 SharePoint 开发人员,我们从第三方公司获得设计。也就是说,设计师以一种几乎完全不记得 SharePoint 的方式制作了自定义设计,就像是完全不同的设计之间的一种混合,就像它是一个发布网站,同时,这个想法是作为尽可能多的开箱即用的功能。
这意味着如果我创建一个列表,所有的外观和感觉都将是定制的,而功能必须保留。所以我会得到一个列表的设置页面,它的功能应该保持不变,但设计应该是新的设计。自定义列表(自定义但在 SharePoint 中创建)将有一个新的、编辑和显示的表单,它应该是开箱即用的......但具有新的设计。
问题在于这种开箱即用的形式。该设计使用 div 来显示链接到自定义列表的每一列的所有 HTML 控件。不幸的是,SharePoint 2013 开箱即用的列表表单使用 HTML 表格将字段制成表格。
显然这篇文章有 30000 个字符的限制,所以我不能从开箱即用的表单中粘贴代码来显示表格,但我所做的是创建一个包含每个示例的表单SharePoint 中可能的字段,然后查看我到达那里的表格数量。而且我无法添加屏幕截图,因为我需要 10 声望...
我在以前的项目中使用控制适配器删除了 SharePoint webparts 中的表格,顺便说一下,我也在这个网站中使用。但我正在努力解决如何在表单中更改这些 HTML 表格。我尝试以与 Webpart 区域相同的方式呈现表单,但它的工作方式不同。
这里有用于 webpart 区域的控制适配器的代码:
public class WebpartControlAdapter : System.Web.UI.Adapters.ControlAdapter
{
protected override void Render(HtmlTextWriter writer)
{
var wpz = Control as Microsoft.SharePoint.WebPartPages.WebPartZone;
if (wpz != null)
{
WebPartCollection wpColl = new WebPartCollection(wpz.WebParts);
foreach (System.Web.UI.WebControls.WebParts.WebPart wp in wpColl)
{
wp.RenderControl(writer);
}
}
}
}
我在此基础上尝试过的内容基本上完全破坏了我的页面:
public class PageControlAdapter : System.Web.UI.Adapters.PageAdapter
{
protected override void Render(HtmlTextWriter writer)
{
var currentPage = Control as Page;
if (currentPage != null)
{
System.Web.UI.HtmlControls.HtmlForm form = new System.Web.UI.HtmlControls.HtmlForm();
form = currentPage.Form;
form.RenderControl(writer);
}
}
}
所以我的问题是是否有人有解决方案或方法来实现这一点。
感谢您提供任何可能的帮助。
P.D.:在您提出之前,更改来自 SharePoint 的 OOTB 的 .aspx 文件不是一种选择,因为我们将其他 Web 应用程序保存在同一个场中,并且在那里进行更改会引发所有其他网站的更改。
【问题讨论】:
标签: html forms sharepoint