Search Posts

Category: Office 365

All about Microsoft Office 365 development

Build dynamic SharePoint search experience using refiners and paging with SPFx, Office UI Fabric and PnP JS library Recently, I’ve submitted a SPFx Web Part sample showing how to build a dynamic search experience using Office UI fabric components and SharePoint search REST API. This sample comes directly from a real intranet project within SharePoint Online. Why you would you like to do this? Well, if you’re currently implementing a new intranet using SharePoint […]

Using PnPjs to send requests to MS Graph with SharePoint Framework 1.6

SPFx 1.6 was released recently and a lot of new and interesting features were introduced. AadTokenProvider, AadHttpClient, MSGraphClient  went to GA, which are my favorite features. One of the common thing in SPFx development is accessing other resources, protected with Azure AD. For example you might have your LOB API with Azure AD protection and you want to […]

PowerApps做唔到cross account的calendar真係一種遺憾

PowerApps每一次Export package去另一個Tenant,就算SharePoint Site裏面連個Site名都一樣,佢都係無法自動化完成所有import流程,一定要人肉入去搞一次,好花時間。而個calendar基本上只可以read當前登入者嘅calendar,如果唔係就要經group calendar或sharepoint list,設計唔算完美。

終於publish左第一個reactjs+typescript的UI component上npmjs

Publish當中最唔明就係點解要自己寫tsconfig同gulp人手張typescript同scss去transpile,呢一點同java好唔同,jar就係jar,唔會理你係邊到行,但nodejs個世界唔同,production同dev版本分別好大。你自己用npx create-react-app去創建新project,的確可以係local行,但就publish唔到上npmjs成功俾人用(可能係typescript同scss太煩)。而家個我個package可以同時俾reactjs同sharepoint spfx去用,可以build UI component library了。

Solved : central admin new web application button is disabled

When you login to central admin and found out your “new web application” button is disabled. Just run SharePoint configuration Wizard, logout and login admin your windows. Everything will be fine. !!! If still failed, try to login to windows via non-administrator account. Then start central admin by “run as administrator”

Manually create sharepoint configuration database

1. you have to run sharepoint shell using administrator 2. when credential dialog popup, you have to input the user name as machine_name\administrator 3. when hitting error, you must close the shell and restart it, otherwise whatever you do, last error message still happen Tips: 1. if you hit “Requested registry access is not allowed”, […]


發現左一個可以玩殘你嘅咪記大bug,如果你寫sharepoint兼用typescript但係又想用jquery, 你好可能會用: import * as $ from ‘jquery’; 如果嗰畫面得一個webpart,甘你會無事,如果有多個webpart(見下圖),你reload幾次就會撞到有一次某幾個webpart無哂野,因為jquery撞左,網上有啲友話係config.json個externals加返jquery呢一招我試過唔得。但我撞到有一招係work嘅:

Solved: vscode [tslint] ‘ should be ” (quotemark)

To solve “[tslint] ‘ should be ” (quotemark)” when developing spfx webpart using visual studio code, do these: open config/tslint.json add {     “$schema”: “”,     // Display errors as warnings     “displayAsWarning”: false,     // The TSLint task may have been configured with several custom lint rules     // before this config file is read (for example lint rules […]

SPfx on-premises solution is lagging behind to SPO

極嚴重, sharepoint framework個generator仲停留緊係1.1.0俾on-premises, 而sharepoint online已經去到1.5.0, 兩個世界再次被split開而咪記班友無意慾修正。千其唔可以sell啲客一個solution做哂sharepoint online同埋未來嘅sharepoint 2019, 死硬 !!!

The setting to identify an SPO/Onprem project for spfx

In file .yo-rc.json, the value of “environment” is either “spo” or “onprem”, it identify your project is on-premises or sharepoint online. If you want to create extension, you have to use “spo” { “@microsoft/generator-sharepoint”: { “version”: “1.4.1”, “libraryName”: “quantr-express”, “libraryId”: “1a6a217f-6fb8-44b4-981f-35d0ebe7025b”, “environment”: “onprem” } }

My notes on command set development for SPO

current list id : current list title : this.context.pageContext.list.title for (let row of event.selectedRows) { let itemId: number = row.getValueByName(‘ID’); Dialog.alert(`${itemId}`); } Get current user email : import * as strings from ‘SpfxCloneCommandSetStrings’; this._fieldTypesToIgnore = new Array( strings.typeCounter, strings.typeContentType, strings.typeAttachments, strings.typeModStat, strings.typeComputed ); this._fieldsToIgnore = new Array( strings.fieldModified, strings.fieldCreated, strings.fieldAuthor, strings.fieldEditor, strings.field_HasCopyDestinations, strings.field_CopySource, […]

Next Page » « Previous Page