有没有人知道有没有办法使用标准的AllUsersWebPart元素和属性的CDATA部分来部署BrowserFormWebPart (列表内容类型的自定义InfoPath表单)?到目前为止,我试过了,但没有成功。任何帮助都是非常感谢的。
发布于 2011-05-24 20:55:32
我也遇到过同样的问题。这是我尝试过的:
<AllUsersWebPart WebPartZoneID="Main" WebPartOrder="2">
<![CDATA[
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Microsoft.Office.InfoPath.Server.Controls.WebUI.BrowserFormWebPart, Microsoft.Office.InfoPath.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="ChromeType" type="chrometype">None</property>
<property name="HelpMode" type="helpmode">Modeless</property>
<property name="ChromeState" type="chromestate">Normal</property>
</properties>
</data>
</webPart>
</webParts>]]>
</AllUsersWebPart>然后我有了一个配置web部件的功能接收器:
using (SPLimitedWebPartManager manager = file.GetLimitedWebPartManager(PersonalizationScope.Shared))
{
try
{
BrowserFormWebPart webpart = GetWebPart(manager);
webpart.SubmitBehavior = SubmitBehavior.FormDefault;
webpart.FormLocation = "~list/MyList/template.xsn";
webpart.ContentTypeId = "0x01003C8AD6E14DAD5342BBFAA84E63F8022C";
manager.SaveChanges(webpart);
}
finally
{
manager.Web.Dispose();
}
}要显示表单,BrowserFormWebPart属性是必需的,但是由于某些原因,在AllUsersWebPart部分中设置这些属性无效。显示表单,我可以填写它,但是表单中的值不会插入到列表项的字段中。我向Feature Receiver添加了以下部分,以尝试将表单绑定到列表项的字段中:
IListWebPart listWebpart = webpart as IListWebPart;
listWebpart.PageType = PAGETYPE.PAGE_EDITFORM;
listWebpart.ViewFlags = SPViewFlags.None;不幸的是,没有joy。这就是我所能做的。希望你有更好的运气。
https://stackoverflow.com/questions/6033417
复制相似问题