Press "Enter" to skip to content

Infopath формы библиотеки форм для работы со списками Sharepoint 2010

0
Очень часто нам не хватает стандартных форм Infopath для списков Sharepoint и хочется использовать формы, опубликованные именно в библиотеке форм. Но как их потом связать с кнопками списка, такими как ПросмотрИзменить или Добавить элемент?

В данном видео я покажу, как это сделать:

!!! Огромное спасибо моему коллеге Константину Бондарчуку за javascript, который я привожу ниже в пп.2 и 3.


Дополнительные материалы:

1. Код из формы Infopath для получения параметра ID:

public void FormEvents_Loading(object sender, LoadingEventArgs e)
        {
            XPathNavigator mainDS = MainDataSource.CreateNavigator();

            if (e.InputParameters !=null)
            {
                string SPID = string.Empty;

                if (e.InputParameters.TryGetValue(“ID”, out SPID))
                    mainDS.SelectSingleNode(“/my:моиПоля/my:System/my:ID”, NamespaceManager).SetValue(SPID);
            }

        }

2. Скрипт, который вставляется на страницу:
<script src=”/testsite/Scripts/jquery-1.10.2.js” type=”text/javascript”></script>
<script type=”text/javascript”>
    function getParameterByName(name) {
        name = name.replace(/[[]/, “\[“).replace(/[]]/, “\]”);
        var regex = new RegExp(“[\?&]” + name + “=([^&#]*)”),
                 results = regex.exec(location.search);
        return results == null ? “” : decodeURIComponent(results[1].replace(/+/g, ” “));
    }
    $(function () {
        var id = getParameterByName(‘ID’);
        var source=getParameterByName(‘Source’);
        if (id != null) {
            var s=”http://sitecollection/site/_layouts/FormServer.aspx?XsnLocation=http://sitecollection/site/FormLibrary1/Forms/template.xsn&OpenIn=browser&ID=”+id;
            if(source!=null && source!=undefined && source!=”){
              s=s+”&Source=”+source;}
            else{
              s=s+”&Source=http://sitecollection/site”;}
   document.location.href=s;
        }
        else {
            document.location.href = “http://sitecollection/site/_layouts/FormServer.aspx?XsnLocation=http://sitecollection/site/FormLibrary1/Forms/template.xsn&OpenIn=browser&Source=http://sitecollection/site/lists/testlist/”;
        }
    });

</script>


Leave a Reply

Your email address will not be published. Required fields are marked *

11 + 15 =