|
[index.razor]
<SfMultiSelect TValue="string[]" ID="multiselect" ModelType="typeof(Countries)" ChangeOnBlur="false" Placeholder="e.g. Australia" @bind-Value="@maskedTextBoxModel.multiVal" Mode="VisualMode.CheckBox" DataSource="@Country">
<MultiSelectFieldSettings Text="Name" Value="Name"></MultiSelectFieldSettings>
<MultiSelectEvents TValue="string[]" ValueChange="Select" Opened="Open"></MultiSelectEvents>
</SfMultiSelect>
@code {
[Inject]
protected IJSRuntime JsRuntime { get; set; }
private WeatherForecast maskedTextBoxModel = new WeatherForecast();
public class Countries
{
public string Name { get; set; }
public string Code { get; set; }
}
List<Countries> Country = new List<Countries>
{
new Countries() { Name = "Australia", Code = "AU" },
new Countries() { Name = "Bermuda", Code = "BM" },
new Countries() { Name = "Canada", Code = "CA" },
new Countries() { Name = "Cameroon", Code = "CM" },
};
public void Select(Syncfusion.Blazor.DropDowns.MultiSelectChangeEventArgs<string[]> args)
{
if(maskedTextBoxModel.multiVal != null && maskedTextBoxModel.multiVal.Length == Country.Count)
{
JsRuntime.InvokeVoidAsync("OnOpen", "multiselect");
} else
{
JsRuntime.InvokeVoidAsync("OnRemoveSpan", "multiselect");
}
}
public void Open(Syncfusion.Blazor.DropDowns.PopupEventArgs args)
{
if (maskedTextBoxModel.multiVal != null && maskedTextBoxModel.multiVal.Length == Country.Count)
{
JsRuntime.InvokeVoidAsync("OnOpen", "multiselect");
}
}
}
|
|
window.OnOpen = (id) => {
var multiObject = document.getElementById(id).ej2_instances[0];
if (document.getElementById("changeSpan") == null) {
multiObject.componentWrapper.getElementsByClassName("e-delim-view")[0].style.display = "none";
var span = document.createElement("span");
span.id = "changeSpan";
span.className = "e-delim-view e-delim-values";
span.innerText = "All Selected";
multiObject.componentWrapper.append(span);
} else {
multiObject.componentWrapper.getElementsByClassName("e-delim-view")[0].style.display = "none";
}
}
window.OnRemoveSpan = (id) => {
var multiObject = document.getElementById(id).ej2_instances[0];
if (document.getElementById("changeSpan") != null && document.getElementById("changeSpan").style.display != "none") {
document.getElementById("changeSpan").remove();
multiObject.componentWrapper.getElementsByClassName("e-delim-view")[0].style.display = "";
}
}
|