Rajendran
Rajendran

Reputation: 56

Is this possible to integrate jQuery UI components inside Blazor application?

I want to integrate the jQuery UI component within the Blazor client-side application. The Spinner component looks better in jQuery UI. is this possible? how to integrate it?

I expect to integrate this Spinner component into my Blazor client-side application?

https://jqueryui.com/spinner/

Upvotes: 3

Views: 1720

Answers (1)

dani herrera
dani herrera

Reputation: 51715

This is the way to create a wrapper for a JQuery or JS control:

1.- Enclose JS behavior in functions:

<script>
  var spinner = null;
  window.myWrapperKSUIfunctions = {

    initialize: function () {
        spinner = $( "#spinner" ).spinner();
        $( "button" ).button();
    },

    dissableclick: function () {
      if ( spinner.spinner( "option", "disabled" ) ) {
        spinner.spinner( "enable" );
      } else {
        spinner.spinner( "disable" );
      }
    },

    destroyclick: function () {
      if ( spinner.spinner( "instance" ) ) {
        spinner.spinner( "destroy" );
      } else {
        spinner.spinner();
      }
    },

    getvalueclick: function () {
      alert( spinner.spinner( "value" ) );
    },

    setvalueclick: function () {
      spinner.spinner( "value", 5 );
    },    
  };
</script>

Don't forget to include other JS/JQuery libraries.

2.- Initialize control from blazor:

@code {

    protected async override Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            await JsRuntime.InvokeAsync<object>("myWrapperKSUIfunctions.initialize");
        }
    }

3.- Call JS function from blazor:

  <button id="disable" 
          @onclick="@( ()=>JustCall("dissableclick") )" >
     Toggle disable/enable
  </button>
@code {

    ...
    protected async Task JustCall(string f)
    {
        wait JsRuntime.InvokeAsync<object>($"myWrapperKSUIfunctions.{f}"); 
    }

Check it out at blazorfiddle.

demo

Also, take a look to MatBlazor controls.

Upvotes: 2

Related Questions