powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / SharePoint [игнор отключен] [закрыт для гостей] / Sharepoint замена форм Tasks list
1 сообщений из 1, страница 1 из 1
Sharepoint замена форм Tasks list
    #37792333
sy-it
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер. В общем пытаюсь создать контрол(ControlTemplates) — который бы позволил принимать или отменять задачи, в ключе нажатия двух кнопок — типа валидация вышестоящей инстанцией.
1) Создал ControlTemplates — в каталоге проекта — /ControlTemplates/Main/MainControl.ascx
2) Написал логику MainControl
3) Создал глобальный ControlTemplates ProjectTemplates.ascx
4) Добавил контрол MainControl в ProjectTemplates:
Код: plaintext
1.
2.
3.
4.
5.
6.
<%@ Register TagPrefix="main" TagName="MainControl" src="~/_controltemplates/Main/MainContro.ascx" %>
<SharePoint:RenderingTemplate id="ProjMainControl" runat="server">
    <Template>
        <main:MainControl runat="server" />
    </Template>
</SharePoint:RenderingTemplate>


— непонятно почему не отображается контрол в дизайнере, отображаеться [ RenderingTemplate "ProjMainControl" ] и все ?
5) Сделал форму с утилитой которая запускается вне приложения, и ассоциирует наш контрол:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
  private bool ChangeMyForms(SPWeb web, SPFile homePage, string TemplateName)
        {
            using (SPLimitedWebPartManager wpm = homePage.GetLimitedWebPartManager(PersonalizationScope.Shared))
            {
                var webparts = wpm.WebParts.OfType<Wp>().ToList();

                foreach (Wp wpt in webparts)
                {
                    if (!(wpt is XsltListFormWebPart))
                    {
                        continue;
                    }

                    var wp = (XsltListFormWebPart)wpt;
                    
                    string zoneId = wp.ZoneID;
                    int zoneIndex = wp.ZoneIndex;
                    var listName = wp.ListName;
                    var listId = wp.ListId;
                    var pageType = wp.PageType;

                    wpm.DeleteWebPart(wp);

                    var lfwp = new ListFormWebPart();
                    lfwp.TemplateName = TemplateName; 
                    lfwp.ListName = listName;
                    lfwp.ListId = listId;
                    lfwp.PageType = pageType;

                    wpm.AddWebPart(lfwp, zoneId, zoneIndex);
                }
            }
            return true;
        }

                    using (SPWeb web = SPContext.Current.Site.OpenWeb(SPContext.Current.Web.ServerRelativeUrl)) // мне кажется что основная моя проблема здесь!
                    { 
                        var TaskList = web.Lists.TryGetList("Задачи"); //Tasks //Lists/Tasks/EditForm.aspx
                        if(TaskList != null) //Задачи
                        {
                            SPFile newHomePage = web.GetFile(SPUrlUtility.CombineUrl(TaskList.RootFolder.Url, "NewForm.aspx"));
                            SPFile editHomePage = web.GetFile(SPUrlUtility.CombineUrl(TaskList.RootFolder.Url, "EditForm.aspx")); // Lists/Tasks/EditForm.aspx
                            ChangeMyForms(web, editHomePage, "ProjMainControl");//EditForm
                            ChangeMyForms(web, newHomePage, "ProjMainControl");//NewForm  
                        }

  }


— но почему то не работает замена контрола, как открывалась старая форма, так и открывается стандартная форма?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / SharePoint [игнор отключен] [закрыт для гостей] / Sharepoint замена форм Tasks list
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]