Skip to main content

D365 lookup Custom filtering javascript

 In my case, I need to add custom filtering when I select a lookup it will populate another lookup. when the user will click on the search icon it will show only filter data. 

I was following: https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/controls/addpresearch

sample code:

 var demoLAB = demoLAB || {};   
 var classId;   
  demoLAB.Stuedent = {   
   Form: {   
    Load: function (executionContext) {   
     'use strict';   
     var formContext = executionContext.getFormContext();       
     this.attachEvents(executionContext);   
    },   
    attachEvents: function (executionContext) {   
     'use strict';   
     var formContext = executionContext.getFormContext();   
     var form = demoLAB.Stuedent.Form;       
     // Student Change Event   
     formContext.getAttribute("demo_studentId").addOnChange(form.studentOnChange);       
     
    },   
    studentOnChange: function (executionContext) {   
     'use strict';   
     var formContext = executionContext.getFormContext();   
     var form = demoLAB.Stuedent.Form;   
     if (formContext.getAttribute("demo_studentId").getValue() != null) {   
      var studentId = formContext.getAttribute("demo_studentId").getValue()[0].id.slice(1, -1);   
      // Retrive current student current class   
      Xrm.WebApi.retrieveRecord("student", studentId, "?$select=_classId_value").then(   
       function success(studentResult) {   
        classId = studentResult._classId_value;   
        // Add presearch for teacher    
        formContext.getControl("demo_teacherId").addPreSearch(form.filterTeacher);   
       },   
       function (error) {   
       }   
      );   
     }   
    },   
    // Call back function for teacher    
    filterTeacher: function (executionContext) {   
     'use strict';   
     var formContext = executionContext.getFormContext();   
     var teacherFilter = "<filter type='and'><condition attribute='demo_classId' operator='eq' value='" + classId + "'/></filter>";   
     formContext.getControl("demo_teacherId").addCustomFilter(teacherFilter, "teacher");   
    },         
   }   
  };   


Comments

Popular posts from this blog

WPF datagrid cell textbox change event

Entity/Class: public class FeesDetails : INotifyPropertyChanged { public int Id { get; set; } public string FeesName { get; set;} public string FeesDetailsName { get; set; } public int? PaidAmount { get; set; } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(System.String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } public int feesAmount { get; set; } public int FeesAmount { get { return this.feesAmount; } set { if (value != this.feesAmount) { this.feesAmount = value; NotifyPropertyChanged("FeesAmount"); } } } } XAML: <DataGrid AutoGenerateColumns="False" Height="21...

mvc razor textboxfor change event change another textboxfor value

Based on value of Weight, Rate , CNF & AWB it will change the value of Freight , TTLCNF anfd TTLFright . Freight= Weight*Rate; TTLCNF  = Weight*CNF; TTLFright=  Freight+ TTLCNF  + AWB; @Html.TextBoxFor(model => model.Weight, new { onChange="return GetWight(this);"}) @Html.TextBoxFor(model => model.Rate, new { onChange="return GetWight(this);"})/Kg @Html.TextBoxFor(model => model.Freight, new {disabled = "disabled" , @readonly = "readonly" ,onChange="return GetTTLFright(this);"}) @Html.TextBoxFor(model => model.CNFPK, new { onChange="return GetCNFPK(this);"}) @Html.TextBoxFor(model => model.TTLCNF, new {disabled = "disabled" , @readonly = "readonly",onChange="return GetTTLFright(this);" }) @Html.TextBoxFor(model => model.AWB, new { onChange="return GetTTLFright(this);"}) and script <script> function GetW...

mvvm double click event in listview

If you want to get the double click event on a listview item you can try with this code; <ListView Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Width="250" Height="200" HorizontalAlignment="Stretch" VerticalAlignment="Top" AlternationCount="2" BorderBrush="#FFA8CC7B" ItemContainerStyle="{StaticResource alternatingStyle}" ItemsSource="{Binding FromPayerNameList}" SelectedItem="{Binding SelectedFromPayer, Mode=TwoWay}"> <ListView.ItemTemplate> <DataTemplate> <TextBlock Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}" Text=...