Sharepoint 2013列出自定义表单

时间:2014-09-11 15:44:23

标签: forms sharepoint-2013 custom-lists

我在这里面临一些关于SharePoint列表新/显示/编辑表单的具体问题......

我解释说:

我已经(从Visual Studio)创建了一个基于DiscussionBoard ListTemplate的SharePoint列表。现在我想自定义该列表的NewForm和EditForm。

我走了几个方法;对于Schema.xml中的检查修改,但这仅适用于自定义列表而不适用于Sharepoint列表(那些基于模板,如讨论板),因为我只有listInstanceFile和elements.xml文件我没有schema.xml文件,用于修改。

我尝试以编程方式执行此操作,我尝试了以下操作(在映射的布局文件夹中创建应用程序页面后)

string sDirectory=Microsoft.SharePoint.Utilities.SPUtility.GetCurrentGenericSetupPath(@"TEMPLATE\LAYOUTS\TetSPCustomForms");
    string newUrl = sDirectory + @"\DiscussionApplicationPage.aspx";
    var form = web.GetFile(newUrl);
    if (form != null && form.Exists)
    {
      lstTest.DefaultNewFormUrl = newUrl;
      lstTest.Update();
    }

这不起作用; GetFile超出了范围...

我也尝试了这个,(在创建一个应用程序页面并将其放在列表之后)

string urlNew = lstTest.DefaultNewFormUrl.Replace("NewForm.aspx", "D2appPage.aspx");
lstTest.Update();

之后我试过了,

var web = properties.Feature.Parent as SPWeb;
if (web == null) return;
SPList lstTest = web.Lists["testBoard"];
string newUrl = string.Format("{0}{1}/D2appPage.aspx",web.ServerRelativeUrl,lstTest.RootFolder.Url);

newUrl错了......

最后我试过这个

SPList myList = web.GetList(SPUrlUtility.CombineUrl(web.ServerRelativeUrl," / Lists / testBoard")); //的Rq         var list = web.Lists.TryGetList(" testBoard");         var rootFolder = list.RootFolder;

    var newFormUrl = string.Format("{0}", list.DefaultNewFormUrl);

    var newForm = web.GetFile(newFormUrl);
    if (newForm != null && newForm.Exists)
        newForm.Delete();   // delete & recreate our new form


    newForm = rootFolder.Files.Add(newFormUrl, SPTemplateFileType.FormPage);
    var wpm = newForm.GetLimitedWebPartManager(PersonalizationScope.Shared);

    var webpart = new ListFormWebPart
    {
        ListId = list.ID,
        ListName = list.ID.ToString("B").ToUpper(),
        PageType = PAGETYPE.PAGE_NEWFORM,
        Title = list.Title,
        Description = list.Description,
        CatalogIconImageUrl = list.ImageUrl,
        TitleUrl = list.DefaultViewUrl,
        //TemplateName = "SomeCustomRenderingTemplate"
    };
    wpm.AddWebPart(webpart, "Main", 0);

没有任何改变......

我错过了什么吗?

任何帮助将不胜感激。

0 个答案:

没有答案