C# - JQuery / ASCX And Webmethods Not Seem To Be Working?
Apr 24, 2010
I have a cascading dropdown (3 of them) Type, Categories and Sub Categories. Type loads first and upon selection of Type, Category load and selection of Category, Sub Category loads. Also i have 2 buttons, "Add Category" and "Add Sub Category" Upon clicking on these buttons, i call a JQuery Modal Form to add them. I use Webmethod in code behind to add them to database
This works perfectly in ASPX page.
Since I need use this in 3-4 pages, i thought of making the above as User control (ASCX). When i try to use this in a webpage, the webmethods in ASCX don't get called.
I have an ascx which contains a submit button for a search criteria and I am trying to call a validation function in a js file I've used throughout the site (this is the first time I'm using it in an ascx).
Now at first I was getting "Validate() is not a function" in firebug. Since I did that alert testing, I am getting the first alert, then nothing with no errors.
I'm generating a file on the server which takes some time. For this, I have a hidden iframe which I then set the .src attribute to an aspx file i.e iframe.src = "/downloadFile.aspx"While this is taking place, I'd like to have a call to a web service return the progress. To do this, I thought I could use window.setInterval or window.setTimeout but Javascript seems to be blocked as soon as I set the iframe src attribute.Does anyone know how to get around this or perhaps try a different approach?I have also tried handlers, but the request never gets to the server so I'm assuming is a browser/javascript issue.
//Function that gets the file function GetFile() { setTimeout(GetProgress, 1000); var iframe = document.createElement("iframe");
The intent is to create a set of web services that people can reuse. These services mostly interact with a backend DB creating, retreiving and processing data. We want to expose services so that people can use to create data mashups and other applications.End users are webpages that can be within our domain or outside our domain. For pages outside the domain we plan to release widgets that would be configured to retreive and display the data.
One requirement - application should be extremely scalable in terms of the number of users it can handle.Our code base is .net and we are looking at ASPX webmethods (or ASHX), ASMX webmethods and WCF (starting to read up on WCF). In terms of security/access I found that maintaining sessionid, memberships is doable in all three. WCF seems a bit complicated to setup. I could not immediately see the value of asmx when we can get all done just using a webmethod in aspx (with a little tweaking). Also, assuming that with the ASP.NET MVC2 I might be able to get clean urls as well for these webmethods.QuestionsWhich one will be the most effective in terms of performance and scalability? Any reason why I should choose WCF or ASMX?
EDIT I kind of understand that WCF is the way to go. Just to understand the evolution of the technologies it would be good if someone can throw light on why a aspx webmethod is different from an asmx when similar things (apart from discovery) can be accomplished by both. The aspx webmethods can be made to return data in other formats (plaintext, json). Also, it seems that we can build restful services using ashx.
I have aspx page and in that page i registerd ascx page. i want to access the aspx page <div id = "idofdiv"> from ascx page jquery function. i have jquery function in ascx page. i want to access idofdiv in that function.
i've tried to get an asp.net dropdownlist control to become a dijit combobox but it's not working. i've tried this:
<asp:DropDownList ID="ddlUserID" dojoType="dijit.form.ComboBox" runat="server" DataTextField="FullNameAndUserName" CssClass="stdtext" DataValueField="UserID" AppendDataBoundItems="True" AutoPostBack="True" meta:resourcekey="ddlUserIDResource1" EnableTheming="False"> <asp:ListItem Text="(All Users)" Value="0" meta:resourcekey="ListItemResource1" /> </asp:DropDownList> <script type="text/javascript" src="../scripts/dojo/dojo.js"></script> <script type="text/javascript"> dojo.require('dijit.form.ComboBox'); </script> the path to dojo.js is relative to the containing parent page of the ascx control and loads fine according to firebug. the rendered html is this: <select id="invoiceReport1_ddlUserID" class="stdtext" dojotype="dijit.form.ComboBox" onchange="javascript:setTimeout('__doPostBack('invoiceReport1$ddlUserID','')', 0)" name="invoiceReport1$ddlUserID"> </select> <script src="../scripts/dojo/dojo.js" type="text/javascript"> </script> <script type="text/javascript"> </script> <script type="text/javascript"> looking at the examples from http://docs.dojocampus.org/dijit/form/ComboBox i cant see why the resulting select tag is not a combobox. i've also tried this: HtmlGenericControl ctrl1 = new HtmlGenericControl("Script"); ctrl1.Attributes.Add("Type", "Text/Javascript"); ctrl1.Attributes.Add("src", "../Scripts/dojo/dojo.js"); this.Page.Header.Controls.Add(ctrl1); HtmlGenericControl ctrl2 = new HtmlGenericControl("Script"); ctrl2.Attributes.Add("Type", "Text/Javascript"); ctrl2.InnerText = "dojo.require('dijit.form.ComboBox');"; this.Page.Header.Controls.Add(ctrl2);
I have a user control with a listview and a pager. The pager doesn't seem to page, it just reloads the same page. I have 4 dropdowns on the page that a user select from, they then click a button to fill the listview with data. I use a method in a class to pull the data like so
I understand how to use jQuery to make an AJAX call to a WebMethod from a normal page, but I'm running into problems doing it from a UserControl (ASCX). Right now the biggest Issue I'm having is that the JavaScript for getting access to the groupDropDown control is not working. It seems that since this is a UserControl hosted within DotNetNuke, the ususal method of getting the CLientID is not working since it is nested down x number of levels. Here is what I have:
Javascript:
function validateEnrolledDate(src, args) { var isValid; [code]....
I'm now just referencing a TextBox:<asp:TextBox ID="dealerId" runat="server" CssClass="theDealer" />
The Text in the Textbox is being set in Server Side code, and it is visible on screen.The alert message is "undefined", so something is still happening so that it is not getting the value of that textbox...
I am working on a feature to throw a warning message if the user has unsaved values in a form. I can see that in the next post there is a explanation about how to do that [URL]now the problem is that i need to do the same but using a ascx control and i don't know where put the next code in my ascx control.
<body onunload="checkSave()">
NB: I'm working on dnn so that i don't have any change to add this code in the parent page of the control.
I have to build a few ascx partial views in my MVC applications to encapsulate re-usable functionalities as well as archive SOR and SOC. However, I encountered challenge how to encapsulate the business logic that drives MVC ascx views.In webforms, the code behind of an ASCX control can handle a button click event and browser still shows the same page with only one postback. How can I archive the same thing in MVC? When ~/Address/Edit/2 includes an ascx partial view with a button on it that calls another MVC action - let's say ~/ShareController/CommonAction - what is the best way for the CmmonAction to return to the very same view that includes the ascx file?Perhaps I am missing a common pattern in MVC web development?
I am having difficulties how to construct my question, but if I have to put it simply the situation is that I have categories of products. I have an aspx with a repeater on the left that lists the categories. And I want the products to be listed on the right. Category number is variable so I made an ascx with a DataList in it. When I try to do foreach category, ascx = new ascx(); then the DataList within this ascx control is null.
ps: what I want to do is to preload all the products (thre is not much) and hide the divs and fadein fadeout them using jQuery when a category div is clicked.
rightnow it is using jQuery.load(); and I don't like how the images load, cuz they download from top to bottom. Progressive gifs alsdo not an option. site demo is here [URL]
I want to reduce postback in one of my application page and use ajax instead. I used the WebMethod to do so.. I have a static WebMethod that needs to access the session variables and modify. and on the client side, i am calling this method using jQuery. I tried accessing the session as follows:
[WebMethod] public static void TestWebMethod() {
[code]...
The values are displayed correctly and seems to work.. but i would like to know if this practice is allowed as the method is a static methods and would like to know how it will behave if multiple people access the application.I would also like to know how developers do these kind of tasks in ASP if this is not the right method.
I'm developing second language support for the site. So I made duplicate .ascx and .aspx files for existing ascx.cs and aspx.cs
Most of the time everything works fine.. but suddenly I'm getting:
Type 'ctrl_car' exists both in 'c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files zhdengined072cc729d5698bApp_Web_xdmblegv.dll', and in 'c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files zhdengined072cc729d5698bApp_Web_gkptrzo2.dll' (translated from russian) ctrl_car ctrl = (ctrl_car) LoadControl("car.ascx");
I have few such strings of code... and same error occurs with one of them. But WITHOUT any changes from me with those files. To fix thaat bug for some time I need to delete solution and website folder and reget them from SS. Solution was converted from vs2005.
I have a webservice (using asp.net VS 2008).If I have two webmethods with same name but different input parameters and same output parameters. Just like given below. Can't I have two webmethods with same name with different parameters?
Both TestProj.WebServices.Portfolio GenerateData(System.String) and TestProj.WebServices.Portfolio GenerateData(System.String, Boolean) use the message name 'GenerateData'. Use the MessageName property of the WebMethod custom attribute to specify unique message names for the methods.
I am using PageMethods in asp.net. In code behind i have written a method which should call a javascript function for each loop & should come back & continue the loop.Is it possible?
[WebMethod] public static void GetStatus() { for (int i = 0; i < 10; i++) { System.Threading.Thread.Sleep(500); //Call javascript function } }
I couldn't think of a decent title, so let me first apologize for that. I have a WebService (call it A) written for my app so I can take advantage of ASP.NET 3.5 AJAX features. I use the generated JavaScript proxy to make AJAX calls.As a side effect, WebService A is exposed for anyone to add as a reference to another project, which is great, except I don't want certain WebMethods to be available to external applications (in the same domain, BTW).So I've got two questions:Is there a way to control the exposure of WebMethods in WebService A?
If there isn't, I'm thinking I'll just add a separate WebService (B) that exposes the WebMethods I need from WebService A. But then,How can I prevent other applications from referencing WebService A while still allowing the application it originates in to access it?If that's not possible, I'm not really worried about it. The apps are all intranet-only, I just don't want the WebServices to be abused.Also, there is a similar question here already without any good anwers. The asker describes almost the same situation I'm in: [URL]
I have what should be a relatively simple task that's frankly got me stumped. I've researched it until my brain is fried, and now I'm puntingHere's the scenario:I have an ASPX page (Q2.aspx) that is decorated with the WebService,WebServiceBinding, and ScriptService attributes. That page contains a method, GetAllContacts, that is decorated with the WebMethodattribute and returns a string containing JSON data. (For what it's worth, the pageitself contains no other controls or functionality.)I have an HTML page that contains JavaScript which uses the XmlHttpRequestobject to invoke the GetAllContacts WebMethod on the ASPX page and transformthe JSON data into an HTML table. I have verified that my Web.Config file contains the appropriate protocol handlersfor HttpGet and HttpPut in the WebServices section under System.Web.webServices. I have verified that my Web.Config file contains the ScriptModule entry under theSystem.webServer.modules section, and that it matches the appropriate documentation.
However, when I view the HTML page in a browser, the following occur:The web request goes through, but the results are for the unprocessed HTML from the ASPX page.The GetAllContacts method is never invoked, as evidenced by setting a breakpoint in its code.The code to invoke the Web service, however, is invoked, and the JavaScript callbackfunction that is invoked upon request completion is properly invoked.
It appears that the JavaScript code is largely set up correctly, but for some reason that is completely escaping me at this point, the HTML page will simply not execute the WebMethod on the ASPX page, and simply returns the page as though it were a plain HTML GET request. Clearly, an HTML document can't be evaluated by JavaScript's eval function, which brings me to my problem. (Also note that the JSON data appears nowhere in the HTML that's returned.)I am, frankly, baffled. I've looked at dozens of Microsoft articles, StackOverflow posts, CodeProject articles, and who knows what else. My code looks like it's okay. But I know better. I'm missing something simple, stupid, and obvious. I just need someone to point it out to me.Below you'll find the ASPX page code and the HTML code, in the hope that they'll shed some light.ASPX Code
I have the following code to store session variable in one webmethod and retrieve it in other webmethod but the value displays null when i try to retrieve it.
[WebMethod(EnableSession = true)] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public bool SubmitList1(string businessname ) { Session["Company_Name"] = businessname; SqlConnection con = new SqlConnection(); ....... ......... ......... }
This will be my second webmethod where i am trying to retrieve the session variable
[WebMethod(EnableSession = true)] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public bool addresslisting() { string companyname = (string)Session["Company_Name"];// this particular value is displaying null ...... ........ }
The default behavior of a [WebMethod] attributed static method on an aspx page is to return the error to the caller. We are accessing these methods using json, and the only way we have found of capturing exceptions is either a try/catch in every webmethod on the site or using a javascript callback with the error (which has the unacceptable downside of exposing the error to the client).
Is there any way to globally handle these exceptions using the HealthMonitoring setup in ASP.NET?
I have some code that is throwing unhandled DivideByZero exceptions in a WebMethod. These exceptions are not being caught by the global logging in Application_Error in global.asax. why exceptions thrown from a WebMethod are not handled by Application_Error?