Hi Rick,
Can you tell me why I am receiving "modalDialog is not a function"?
Thanks, Craig
I am trying to get a simple test working first from an example before I customize. Something like this
function GenericButtonClick(item, name, e) {
$.modalDialog("This dialog is generic, was created on the fly and requires no page elements. " + name,
"Generic Modal Dialog ",
["OK", "Cancel", "Otherwise"],
function () {
var div = $("#divGenericButtonResult");
var txt = $(this).val();
if (txt == null)
return false; // don't exit
div.text("You clicked on: " + txt).show();
return true; //
}, false);
}
Make sure ww.jquery.js is loaded...
+++ Rick ---
Yes, I know the method is in that js file, but am not sure why it isn't being picked up.
Does it have to be in a certain location or are there other associated js files that I'm missing?
(I've tried both min and <script src="scripts/ww.jquery.js"></script>
Thank you, Craig
Look in your JavaScript dev tools for errors. Pretty sure that path you have is not going to work - it needs to be a site relative path.
+++ Rick ---
I can see in dev javascript tools the library path is resolved, however I'm still getting same error. Can you think of anything else to try? Thanks
Craig,
I don't know. The function should definitely be there. It's in ww.jquery.js. Maybe check and see if it's there and make sure that the library you're looking at is what's actually getting loaded.
I haven't looked at this stuff in years so other than a quick glance at the code where I see that $.modalDialog()
definitely exists. You might also want to make sure that jquery is loaded and the $
is in scope. It should be...
+++ Rick ---
Hi Rick, I did get this working by loading up higher in the master page. I am now having issues with JS methods not firing. Thanks, Craig
I was able to finally get my JS scripts to start firing correctly by adding this to them. I have not had to to this in the past because they must have been in scope, however this brought all JS scripts back to life after form postback. Good to go now! Thanks, Craig
function pageLoad(sender, args) {
$(document).ready(function () {
Yes scripts need to fire after all the content has loaded. So either you have the scripts at the bottom (after all the rest of the content) or you have it at the top and any code that needs to access scripts on page load needs to use $.ready()
or the like.
I guess this happened because the scripts got moved in your previous cleanup.
BTW, this is one of the reasons WebForms and these controls are now deprecated - it's very difficult to figure out where things are going as the framework injects some of the scripts. There are overrides for all of this stuff but it's not really obvious and there are many combinations. The better approach IMHO is to use the JavaScript components directly in script code and not use the server side controls that render them and provide a small wrapper around them.
At the time this was a good idea because that's all we had to work with (ie. WebForms). But now that there are so many more choices for using raw HTML the direct script approach is much cleaner.
+++ Rick ---
Interesting feedback Rick.
Maybe this is for a new thread...and I know everyone as an opinion...but... What is the 'preferred' platform for website development now that WebForms is deprecated (for previous WebForm developers)?
(I hope this doesn't mean you are discontinuing ww .net tools)
The WebForms .NET tools have been discontinued for a long time actually. There will be no changes there and no fixes either. Whatever is there is it. There's no market left for Web Forms tooling and even if there was I don't think I want to put anymore effort into it. What's there I'll support within reason, but I don't use it enough anymore to even know all the intricacies myself without spending a ton of time to look at this each time.
Lots of options out there today. In the .NET space, ASP.NET Core offers the all in one MVC/Pages/API model and that's what I use for everything today. it's pretty much the same model that's been in use for the last 10 years just under a unified framework interface.
Then there's the whole SPA area - Angular, Vue, React etc. for building client side applications with an API backend.
Or a hybrid of SPA and server back end.
+++ Rick ---
Thanks for the feedback Rick.
Is there a market for "West Wind Toolkit for MVC/Pages/API"? I did notice there were MVC modules in the current .NET toolkit although I haven't used them recently.
It is interesting there is still more of a demand/market for FoxPro than ASP.NET...
Yes - ww.jquery.js
is not loaded when you are calling that function.
Either make sure ww.jquery.js
is declared higher up at the top of the document (you can set that in the script loader explicitly) or make sure you use $.ready(function() { $.modalDialog(); } )
. Scripts get loaded automatically with the server controls but if you manually load then you have to make sure the order is right. From the problem you have I'm guessing jQuery may be loading in the header, but ww.jquery.js may be loading on the bottom of the doc.
+++ Rick ---
Hi Rick, I have that resolved now. I think you missed my last message: https://support.west-wind.com/ReplyMessage.wwt?id=5SC0QAOF0#5SC0HTANB
Thanks for the feedback Rick.
Is there a market for "West Wind Toolkit for MVC/Pages/API"? I did notice there were MVC modules in the current .NET toolkit although I haven't used them recently.
It is interesting there is still more of a demand/market for FoxPro than ASP.NET...
LOL - there never was a market for West Wind ASP.NET Tools really. The market was me and you, bud!
Not really, but it wasn't widely used and completely died off when Web Forms essentially died off in the last 10 years.
The JavaScript libraries are useful, but a lot of what was in there has been made standard in higher level libraries (like tabs, modals etc.) or are just things that aren't used any more (like floating windows).
+++ Rick ---
The .NET Tools were Cool!
I seriously hope you continue to build tools and wrappers for MVC/Pages/API...!
I still have library helpers for 'overall architecture' stuff like error handling custom formatters, user state management and a bunch of other stuff in my .NET Core libraries that I use all the time.
But as far as it goes to build UI components: That's just not a thing anymore at this point given that there are client side libraries Bootstrap, Material Design and various others that do that today for free. It's not quite as easy as some of the 'controls' were but relatively straight forward.
It's just a lot of effort to build and there's no chance that that can be monetized in any sensible way - I'm over building stuff that people are using and not giving back for in any way. Not pointing at you - because you've been one of the few who's always been there to buy and support whatever has come out above and beyond. But unfortunately you're a very small minority. But I thank you nevertheless for all your support both via product purchases and some of the work we've done together on projects.
+++ Rick ===