MVC :: Desparate - Jquery And Jqgrid - Javascript Paths On Development Vs. IIS?
Mar 11, 2011
I am at my wits end. I am developing an MVC application using the VS2010 templates and have added jquery and jqgrid functionality to my pages.
Everything works perfectly when running my app in debug mode using the Visual Studio Development web server. At runtime, the app comes up in the browser with a URL such as :
http://localhost:49572/
However, this app has functions that must run under HTTPS and accept client certificates so I've reconfigured the project to use IIS, configured the virtual directory, loaded a self-signed certificate, etc etc.
The app launches just fine with a URL that looks like this (depending on whether it is configured to launch with https or not).
http://machinename/virtualdirectory or https://machinename/virtualdirectory
but now my javascript and CSS references don't work. I've played around with every variation of ../file, ../Scripts/file.js, ../../Scripts/file.js, ../../Content/file.css. I've tried all the various helpers like ResolveClientUrl and Content.Url, leading ~, etc etc etc.
With some variations, certain jquery functions will work, like an Autocomplete text box or datepicker, but the jqgrid won't. If I leave everything at ../../Scripts/file.js, then all my jquery breaks running from IIS.
I was doing the MusicStore Tutorial, I finished it and now I am trying to improve the tables with the jqgrid, that seems to be great. I found the
Phil Haack blog's post about how to use it.
[URKL]
But I couldn't do a mix of this, I tried to make the storemanager page with the grid of jqgrid instead of the simple table, but doesn't work. This is what I did:
So all the javascript loads fine except for the jqGrid. It's giving me this error: jQuery("#resultsGrid").jqGrid is not a function Which I'm assuming means it can't find the .js source. However, it is in my main Js folder along with all the other goodies, and everything else seems to work fine. Plus, none of the other javascript needs to reference the grid stuff as a source, so if I reference it in the script tag, it will break everything else right?
I am new to using Jqgrid and jquery.I am not able to bind my json data which I retrive from the webmethod onto the jqgrid.I have also used firebug to cross verify and i am receiving data from it. Some help regarding this will be great. I would aslo like to know if any other references needs to be added.
[WebMethod] public static string GetData() Custome Customer Ctwo = new Customer(); Cone.CustomerID = "100"; Cone.CustomerName = "abc"; [code]...
I downloaded the samples for jqGid and they are all *.js files like the one below.
[Code]....
I know this should be put around a <script> tag inside my .aspx file but what should my markup look like. I assume that "#grid1" is wraped within a html <table> but what would the pager: '#pgrid3' be? jQuery will do the replacement on the client side here.
The jqGrid has been kicking my butt (as well as others on this site). I can't seem to get the JSON data from the webservice to load into the jqGrid when using the addJSONData method.
I am not using MVC just a plain WebProject webservice in ASP.NET 3.5.
I am using the latest version of jqGrid 3.5.
I don't know what to do. I am currently trying to load just 1 row that I am returning a string in my WS like this:
"Page:1,Total:1,Records:1,Rows:[name: Jeff V title: Programmer]"
Which is then passed into my javascript as:
{"d":"Page:1,Total:1,Records:1,Rows:[name: Jeff Vaccaro title: Programmer]"}
I am new to jqGrid and I have found it difficult to follow the documentation jqGrid Documentation / I cannot figure out how to call a WebMethod when setting up the JQGrid. I have been successful in making an Ajax call to get the data and then setting up the JQGrid with local data. I think its an extra step in the setup process and that I should be able to provide the path to the webmethod using the url property. The editurl property is the same way. I am never actually receiving the post to the server. Attempted JQGrid Setup
function GetData() { $('#list').jqGrid({ type: "POST", url: "Default.aspx/GetUsersJSON", datatype: "json", height: 250, colName: ['Username', 'Email'], colModel: [ ... }).jqGrid( 'navGrid', '#pager', { edit: true, add: true, del: true }); } WebMethod [WebMethod] public static string GetUsersJSON() { var users = new List(); using(UserAdministrationSandboxDataContext uasd = new UserAdministrationSandboxDataContext()) { users = uasd.GetUserList(); } JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(users); }
Current Code I got it working correctly now, but I still have one final question. Why did I have to set the 'repeatitems: false' in order to display the content? Some of the caveats to get this to work include the different ways to setup the ajax request. (Ajax: type) is (jqgrid : mtype) (Ajax: contentType) is (jqgrid : ajaxGridOptions: { contentType: })
And finally understanding the documentation from the documentation on how to setup the JSONReader.
function GetUserDataFromServer() { $('#list').jqGrid({ url: "Default.aspx/GetUsersJSON", mtype: 'POST', ajaxGridOptions: { contentType: "application/json" }, datatype: "json", serializeGridData: function (postData) { return JSON.stringify(postData); }, jsonReader: { root: function (obj) { return obj.d; }, page: function (obj) { return 1; }, total: function (obj) { return 1; }, records: function (obj) { return obj.d.length; }, id:'0', cell:'', repeatitems: false }, datatype: "json", height: 250, colName: ['Username', 'Email'], colModel: [ { name: 'Username', index: 'Username', width: 100, editable: true }, { name: 'Email', index: 'Email', width: 220, editable: true }, { name: 'IsLockedOut', index: 'IsLockedOut', width: 100, editable: true, edittype: 'checkbox' } ], caption: "Users" }) } Web Method [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static List GetUsersJSON() { using (UserAdministrationSandboxDataContext uasd = new UserAdministrationSandboxDataContext()) { return uasd.GetUserList(); } } One JSON Object from the List {"__type":"UserAdministrationSandbox.UserData","PKID":"00000000-0000-0000-0000-000000000001","Username":"TestUser","ApplicationName":"Test","Email":"TestUser@test.com","Comment":"TestUser","Password":"D41D8CD98F00B204E9800998ECF8427E","PasswordQuestion":"Is this a blank Password?","PasswordAnswer":null,"IsApproved":true,"LastActivityDate":"/Date(1298869200000)/","LastLoginDate":"/Date(1298869200000)/","LastPasswordChangedDate":"/Date(1298869200000)/","CreationDate":"/Date(1298869200000)/","IsOnLine":false,"IsLockedOut":false,"LastLockedOutDate":"/Date(1298869200000)/","FailedPasswordAttemptCount":0,"FailedPasswordAttemptWindowStart":null,"FailedPasswordAnswerAttemptCount":null,"FailedPasswordAnswerAttemptWindowStart":null}
I have Master Details JQGrid.My details JQGrid have Edit,Add,Del options. my problem is when I click on submit button to add data or edit data I faced with this error: "500 Internal Server Error" and it's response is
My WCF service has a method that retruns json string now i need to bind this json string to my jqgrid by consuming the WCF service. Has any one done this
I am trying to disable the controls within the JQGrid on some other event. how can i do this. Below is my JQGrid Basically i want to disable the custom buttons btnDeleteExistingRoles, btnAddExistingRoles and the checkboxes that are created in the "Select" column( i have written a custom formatter for this).
jQuery(document).ready(function() { $('#btnHdnExistingRoles').click(function() { var lastsel2; jQuery("#grdExistingRoles").GridUnload("#grdExistingRoles"); jQuery("#grdExistingRoles").jqGrid({ url: '/SAPWebAccess/Role.mvc/GetExistingRoleForUser/',
After a little hard work I was finally able to bind jqgrid in asp.net, but now I am facing another problem that is I am not able to sort the data or use pagination in jqgrid. And it seems There is a post back every time I click on the grid headers or select the page drop down. My code is as follows:
I have 2 nested datalist that one of them is menudatalist and the other is submenu datalist. whenever I click on my submenu items a dynamic user control should load in dynamic tab. my problem is : one of my usercontrols that is JQGRID does not load in tab and when I click on that submenu Item an empty tab is created,however other user controls are loaded in tabs correctly.
2. I have my own delete button to delete multiple orders
The problem:
When i press the delete button on the pager of my jqgrid, the records are deleted from the database but JqGrid shows some records (4-5). On refreshing the grid, correct numbers of records are shown.
My page structure:1. 4 dropdowns which serve as filter for jqgrid2. a stored procedure (which shows all records if all dropdowns have NULL or empty value)3. a jqgrid which works on data in the dropdownsNow, due to some role restrictions, i have to disable 2 dropdowns and set a value in them and then load the jqgrid. im using ajax (jquery) to load data to my dropdowns.issue: if i use jquery ajax to load my dropdown data, all records are shown. but, if i use dropdown_load method in C#, i get the correct result that is filtered records.is there a way to load all the dropdowns first using jquery ajax and then load the jqgrid so that the jqgrid params take the updated value from the dropdowns...
I have Master Details Jqgrids and I want my details jqgrid to have Add,Edit,Del options. now I have 2 problems :1- when I click on my edit button, formedit just show submit & cancel buttons and none of the fields doesn't appeare.2-in my server side page I don't know what codes I should write to be able to Add,Edit,del through JQgrid.
I am using the JqGrid in my application and in one page I use the setGridParam to change the url and then call the trigger("reloadGrid") method. If the result json response is empty (no row data) my code end up in an infinitive loop reloading the grid. I have checked the gridComplete event and its not triggering the reload. Have any off you guys seen this before or know anything about it?
I am trying to re-order the jqgrid rows using only one specific column. Currently, the rows can be re-ordered by any column. I have it setup like below:
jQuery("#list").jqGrid('sortableRows', { update: function (ev, ui) { SaveRowSorting(); } });
But the above code allows the rows to be re-ordered by all columns, however we want to restrict it to only one column. E.g, if we have 3 columns in a row. Then, we want the row to be re-ordered by only column1 and it shouldn't allow row sorting using the other two columns.
I am using Jqgrid 3.6 beta version with asp.net and i wanna add dynamic context menu on row selection.When ever user rightclick a row in jqgrid he wants to see some menu like file,edit and other menus. I have completed using single page i.e. both the jqgrid and its parent(JS files) are in single page . But in my main Application I have one master page in which ill define all the JS and seperate page for the content(Jqgrid). So what happens is the same code which is running in single page application is not working in the master detail page.
i want to do sorting for jQGrid in ASP.NET. For that i have pass the sidx and sord for column name and sorting order.but it was giving error "Incorrect syntax near '0'. Statement(s) could not be prepared." i wrote query for this select Image,CategoryName,Status,CategoryId from Category Order by {0} {1}
I'm developing in C# ASP.NET and my lines of JavaScript start to grow quite a lot and I feel there most be some better tools for the actual JS development rather than working in Visual Studio.
Experienced a really strange problem today. I added a jquery script to my MVC application to collapse sections of a View (via divs).
Pretty standard stuff, he showed me the script working before hand and it works.
However any time I would run my MVC app via Visual Studio the script would not work. I changed browsers, re-imported the code from source control and basically me and my co-worker banged our heads together for some time trying to figure out why the exact same code was running different on two machines.
Publishing the MVC app to our web server and running worked for both machines but for some bizarre reason when I ran it on my VS it never did.
One thought that came to mind is that by VS uses the cassini default lightweight webserver for debugging, whereas my co-worker is using IIS.
This seems to suggest then that the ASP Development server does not support JQuery. Is this true and if not, what could the problem be?