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

我解释:

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

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

什么都没有改变......

我错过了什么吗?

任何帮助将不胜感激 .