Sample: Auto-complete in Dynamics 365 controls
Updated: November 29, 2016
Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Use the sample JavaScript code to configure the auto-completion experience in Dynamics 365 by using the following client-side APIs introduced in Microsoft Dynamics 365 (online & on-premises): getValue, Keypress methods, and Auto-completion methods.
Demonstrates
When you add the sample JavaScript code in this topic as a form library in your account form, and add the suggestAccounts function on the OnLoad event in the account form, the auto-complete feature is configured on the Account Name field in the account form. When you type a name in the Account Name field, an auto-complete drop-down list is displayed, and the values in the drop-down list are filtered to match the characters that you press in this field. Clicking a value in the drop-down list adds it to the Account Name field.

Example
/* Sample JavaScript code to demonstrate the auto-completion feature. This sample configures the auto-complete feature for the "Account Name" field in the account form. */ function suggestAccounts() { // List of sample account names to suggest accounts = [ { name: 'A. Datum Corporation', code: 'A01' }, { name: 'Adventure Works Cycles', code: 'A02' }, { name: 'Alpine Ski House', code: 'A03' }, { name: 'Bellows College', code: 'A04' }, { name: 'Best For You Organics Company', code: 'A05' }, { name: 'Blue Yonder Airlines', code: 'A06' }, { name: 'City Power & Light', code: 'A07' }, { name: 'Coho Vineyard', code: 'A08' }, { name: 'Coho Winery', code: 'A09' }, { name: 'Coho Vineyard & Winery', code: 'A10' }, { name: 'Contoso, Ltd.', code: 'A11' }, { name: 'Contoso Pharmaceuticals', code: 'A12' }, { name: 'Contoso Suites', code: 'A13' }, { name: 'Consolidated Messenger', code: 'A14' }, { name: 'Fabrikam, Inc.', code: 'A15' }, { name: 'Fabrikam Residences', code: 'A16' }, { name: 'First Up Consultants', code: 'A17' }, { name: 'Fourth Coffee', code: 'A18' }, { name: 'Graphic Design Institute', code: 'A19' }, { name: 'Humongous Insurance', code: 'A20' }, { name: 'Lamna Healthcare Company', code: 'A21' }, { name: 'Litware, Inc.', code: 'A22' }, { name: 'Liberty Delightful Sinful Bakery & Cafe', code: 'A23' }, { name: 'Lucerne Publishing', code: 'A24' }, { name: 'Margie Travel', code: 'A25' }, { name: 'Munson Pickles and Preserves Farm', code: 'A26' }, { name: 'Nod Publishers', code: 'A27' }, { name: 'Northwind Electric Cars', code: 'A28' }, { name: 'Northwind Traders', code: 'A29' }, { name: 'Proseware, Inc.', code: 'A30' }, { name: 'Relecloud', code: 'A31' }, { name: 'School of Fine Art', code: 'A32' }, { name: 'Southridge Video', code: 'A33' }, { name: 'Tailspin Toys', code: 'A34' }, { name: 'Trey Research', code: 'A35' }, { name: 'The Phone Company', code: 'A36' }, { name: 'VanArsdel, Ltd.', code: 'A37' }, { name: 'Wide World Importers', code: 'A38' }, { name: 'Wingtip Toys', code: 'A39' }, { name: 'Woodgrove Bank', code: 'A40' } ]; var keyPressFcn = function (ext) { try { var userInput = Xrm.Page.getControl("name").getValue(); resultSet = { results: new Array(), commands: { id: "sp_commands", label: "Learn More", action: function () { // Specify what you want to do when the user // clicks the "Learn More" link at the bottom // of the auto-completion list. // For this sample, we are just opening a page // that provides information on working with // accounts in CRM. window.open("http://www.microsoft.com/en-us/dynamics/crm-customer-center/create-or-edit-an-account.aspx"); } } }; var userInputLowerCase = userInput.toLowerCase(); for (i = 0; i < accounts.length; i++) { if (userInputLowerCase === accounts[i].name.substring(0, userInputLowerCase.length).toLowerCase()) { resultSet.results.push({ id: i, fields: [accounts[i].name] }); } if (resultSet.results.length >= 10) break; } if (resultSet.results.length > 0) { ext.getEventSource().showAutoComplete(resultSet); } else { ext.getEventSource().hideAutoComplete(); } } catch (e) { // Handle any exceptions. In the sample code, // we are just displaying the exception, if any. console.log(e); } }; Xrm.Page.getControl("name").addOnKeyPress(keyPressFcn); }
Microsoft Dynamics 365
© 2016 Microsoft. All rights reserved. Copyright