Показаны сообщения с ярлыком Кусочек кода. Показать все сообщения
Показаны сообщения с ярлыком Кусочек кода. Показать все сообщения

вторник, 14 ноября 2017 г.

Установка видимости полей списка SharePoint online Chrome dev tools (F12) и JavaScript


Часто возникает необходимость установить свойства видимости полей списка.
Для SharePoint on-premise можно использовать SharePoint manager.
Для SharePoint online можно использовать Chrome dev tools (F12) и JavaScript




  1. function setFieldVisibility(listTitle,fieldName,properties,success,failure)
  2. {
  3.      var ctx = SP.ClientContext.get_current();
  4.      var web = ctx.get_web();
  5.      var list = web.get_lists().getByTitle(listTitle);
  6.      var field = list.get_fields().getByTitle(fieldName);
  7.      field.setShowInDisplayForm(properties.ShowInDisplayForm);
  8.      field.setShowInNewForm(properties.ShowInNewForm);
  9.      field.setShowInEditForm(properties.ShowInEditForm);
  10.      field.set_hidden(properties.Hidden);
  11.      field.update();
  12.      ctx.executeQueryAsync(success,failure);
  13. }
  14.        
  15. var listTitle = 'Custom List';
  16. var fieldName = 'Title';
  17. var properties = {
  18.       'ShowInDisplayForm': false,
  19.       'ShowInNewForm': false,
  20.       'ShowInEditForm': false,
  21.       'Hidden': true
  22. };
  23. setFieldVisibility(listTitle,fieldName,properties,
  24.    function () {
  25.       console.log("Field visibility settings has been changed");
  26.    },
  27.    function(sender,args){
  28.       console.log(args.get_message());
  29.    }
  30. );

понедельник, 7 августа 2017 г.

Интересная проблема с отображением знака - в числах в языках rigth to left

В некоторых языках в которых пишут с права на лево отрицательные числа отображаются "123-".
Но как правило пользователи все равно хотят видеть в формате "-123". Исправить это можно задав атрибут dir тегу  html.

http://htmlbook.ru/html/attr/dir

вторник, 5 мая 2015 г.

Ссылка на экспорт списка в Excel

В списках есть удобная функция экспорта данных в файл Excel. Кнопка для экспорта расположена в риббоне на вкладке ( список -> экспорт в excel  ).

Чтобы реализовать такой же функционал на своей странице в кнопке или ссылке можно использовать ссылку специального вида.

Узнать GUID списка и представления можно выполнив экспорт через кнопку в риббоне. Затем в Excel открыть, далее ( данные -> подключения -> свойства -> текст команды ).
Или можно узнать через SharePoint manager.

Получится ссылка такого вида.

site_url/_vti_bin/owssvr.dll?CS=109&Using=_layouts/query.iqy&List=F412F320-2E05-4E27-98B7-4E01282FF247&View=1E79350F-7CB6-416D-AB59-4271F5150F84&CacheControl=1

четверг, 20 марта 2014 г.

Передача параметров JQuery WEB API

В WEB API три основных типа передаваемых параметров: обьект, одиночный параметр и массив.
Ниже представлен пример кода передачи параметров из jQuery.ajax .

четверг, 15 августа 2013 г.

Добавление данных в ListInstance

Часто в процессе отладки, и не только отладки, требуется заполнять списки тестовыми данными. Это не обязательно делать вручную, можно прописать их в файле Elements.xml (относящийся к ListInstance) в теге <Data></Data>.
 
 
<ListInstance Title="Список" OnQuickLaunch="TRUE" TemplateType="12001" Url="Lists/List" Description="Список ">
  <Data>
    <Rows>
      <Row>
        <Field Name="Title">Действия</Field>
        <Field Name="Section">Общие вопросы</Field>
      </Row>
      <Row>
        <Field Name="Title">Пыльные системные блоки</Field>
        <Field Name="Section">Техническое состояние офиса</Field>
      </Row>
    </Rows>
  </Data>
</ListInstance>

воскресенье, 16 июня 2013 г.

Автоматическая установка размера SharePoint App Part

Задать размер App Part  можно в теге.
<ClientWebPart Name="" Title="" Description="" DefaultWidth="300" DefaultHeight="200">


Но для контента чей размер заранее неизвестен нужно задать размер фрейма в котором App Part   размещается.

Чтобы установить размер фрейма в котором размещается App Part  можно использовать функцию ниже.

 



   1: //Задание размера фрэйма
   2: function resizeIFrame() {
   3:     if (window.parent != null) {
   4:  
   5:         var senderId;
   6:         var params = document.URL.split("?")[1].split("&");
   7:         for (var i = 0; i < params.length; i = i + 1) {
   8:             var param = params[i].split("=");
   9:             if (param[0].toLowerCase() == "senderid")
  10:                 senderId = decodeURIComponent(param[1]);
  11:         }
  12:  
  13:         var height = $('html').height();
  14:  
  15:         if ($('body').height() > height) {// для совместимости хром ИЕ
  16:             height = $('body').height();
  17:         }
  18:  
  19:         var width = $('html').width();
  20:         var message = "<Message senderId=" + senderId + " >" + "resize(" + width + "," + height + ")</Message>";
  21:         window.parent.postMessage(message, document.referrer);
  22:  
  23:     }
  24: }

четверг, 16 мая 2013 г.

Чтение поля картинка SharePoint JS Client Object Model

Чтение обычного текстового поля с помощью JS COM происходит так:
   1: var fotoUrl = item.get_item(fotoUrlField);

Но для чтения поля типа URL или Картинка значения получаются с помощью дополнительных методов
get_url() и get_description()

   1: var fotoUrl = item.get_item(fotoUrlField).get_url();   

четверг, 18 апреля 2013 г.

понедельник, 10 сентября 2012 г.

Типы полей SharePoint


Список


Microsoft.SharePoint.SPField
 Microsoft.SharePoint.SPFieldAttachments
 Microsoft.SharePoint.SPFieldBoolean
 Microsoft.SharePoint.SPFieldCalculated
 Microsoft.SharePoint.SPFieldComputed
 Microsoft.SharePoint.SPFieldCrossProjectLink
 Microsoft.SharePoint.SPFieldDateTime
 Microsoft.SharePoint.SPFieldFile
 Microsoft.SharePoint.SPFieldGuid
 Microsoft.SharePoint.SPFieldLookup
      Microsoft.SharePoint.Applications.GroupBoard.SPFieldFacilities
      Microsoft.SharePoint.SPFieldUser
 Microsoft.SharePoint.SPFieldMultiChoice
 Microsoft.SharePoint.SPFieldMultiColumn
 Microsoft.SharePoint.SPFieldMultiLineText
 Microsoft.SharePoint.SPFieldNumber
 Microsoft.SharePoint.SPFieldPageSeparator
 Microsoft.SharePoint.SPFieldRecurrence
 Microsoft.SharePoint.SPFieldText
 Microsoft.SharePoint.SPFieldUrl


NameFormat
AttachmentsSystem.Boolean
BooleanSystem.Boolean
CalculatedN/A
ChoiceSystem.String
ComputedN/A
CounterSystem.Int32
CrossProjectLinkSystem.Boolean
CurrencySystem.Double
DateTimeSystem.DateTime
GridChoiceSystem.String
GuidSystem.Guid
IntegerSystem.Int32
LookupSystem.String
MaxItemsSystem.Int32
ModStatSystem.Int32
MultiChoiceSystem.String
NoteSystem.String
NumberSystem.Double
RecurrenceSystem.Boolean
TextSystem.String
ThreadingSystem.String
URLSystem.String, System.String
UserSystem.String
NoteSystem.String



Поле "Пользователь или группа"

Формат
Console.WriteLine(item["Кому назначено"].ToString());
1;#WIN-MAHUIK21MH6\администратор

Запись
emploer  - LinqToSharePoint
taslItem["Кому назначено"] = emploer.DomainLoginИдентификатор ?? null;

Можно записать просто числовой ID юзера
http://msdn.microsoft.com/en-us/library/ms415089(v=office.14).aspx
Работа с полями SPFieldUser, SPFieldUrl and SPFieldLookup используя extension methods

вторник, 7 августа 2012 г.

Запись в лог SharePoint


Метод  пишет в лог ShrePointa
//запись в системе логирования
private void WriteLog(string category, string message, Exception ex)
{
    SPDiagnosticsService diagSvc = SPDiagnosticsService.Local;
    //SPDiagnosticsCategory cat = diagSvc.Areas["SharePoint Foundation"].Categories["MPRUsers"];
    SPDiagnosticsCategory diagCat = new SPDiagnosticsCategory(category, TraceSeverity.High, EventSeverity.Error);
    SPDiagnosticsArea diagArea = new SPDiagnosticsArea("SharePoint Foundation", new SPDiagnosticsCategory[] { diagCat });
    diagSvc.WriteTrace(0, // custom trace id
                       diagArea.Categories[category], // create a category   
                       TraceSeverity.High, // set the logging level of this record   
                       "{0} - {1}", // custom message   
                       new object[] {message, ex.ToString() } // parameters to message
        );
}

Пример вызова

catch (Exception ex)
{
    WriteLog("Категория", "админ френдли сообщение", ex);
}


подробнее здесь 

пятница, 6 апреля 2012 г.

Linq Трассировка SQL кода

 

В EF делаем так

using (DatabaseEntities context = new DatabaseEntities())
{
var query = from p in context.Profiles
where p.ProfileID == 100
select p;
Console.WriteLine(((ObjectQuery<Profile>)query).ToTraceString());
}



В LINQ to SQL так

using (DatabaseContext context = new DatabaseContext())
{
context.Log = Console.Out;
var query = from p in context.Profiles
where p.ProfileID == 100
select p;
}

суббота, 3 декабря 2011 г.

Отмена Рабочего процесса SharePoint

 

Тестовый код для отмены РП

//Повысим привелегии

SPSecurity.RunWithElevatedPrivileges(() =>
  {
     using (SPSite siteColl = new SPSite(@"http://labtax23.inb2b.net/cs"))
     {
                    using (SPWeb site = siteColl.OpenWeb(@"/cs"))
                    {
                        try
                        {
                            Label1.Text = site.Name + "  ";
                             SPListItem item = site.Lists["test"].GetItemById(1);

                            Label1.Text += item.Name;

                            //Получаем экземпляр РП
                            SPWorkflow wf = item.Workflows[item.Workflows[0].InstanceId];
                            //Завершаем РП при этом отменяются все задачи связанные с РП
                            SPWorkflowManager.CancelWorkflow(wf);
                        }
                        catch (Exception ex)
                        {
                            Label1.Text += ex;
                        }

                    }
                }
            });
        }

понедельник, 7 ноября 2011 г.

Кусочек кода

GridView добавление контролов в строку.
........................................


protected void Page_Load(object sender, EventArgs e)
{


CSDataClassesDataContext dataContext = new CSDataClassesDataContext(Utils.GetConnectionString());         

 if (!IsPostBack) 
{  
 .....................  
 PriceGridView.DataSource = _price.PriceItems;
 PriceGridView.RowDataBound += new GridViewRowEventHandler(PriceGridView_RowDataBound);

 } 
}
........



void PriceGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
           
Label SumLabel = (Label)e.Row.Cells[2].FindControl("SumLabel");
TextBox NTextBox = (TextBox)e.Row.Cells[2].FindControl("NTextBox");
.....      
 } }