C# - Calling User Control Javascript Functions From New Window
Mar 31, 2011
I have a user control which opens a new window for some item selection. Once an item is selected on that window, the item ID should be passed to a callback javascript function in the user control. In order to have a unique callback function name in the user control (it may have multiple instances on the same page), I added the user control ID to the function name as follows (defined in the ascx file):
function OnItemSelection_<%=this.ID%>(selectedItemID)
{
OnItemSelection("<%=SomeControl.ClientID%>", selectedItemID)
}
Where OnItemSelection is defined in an external js file:
function OnItemSelection(controlID, selectedItemID)
{
$(controlID).do_something(selectedItemID);
}
The issue is that now I'm not sure how the new page can call the "right" function (of the user control instance where it was opened from). The only idea I have in mind so far is passing the name of the callback function in the query string:
var CallbackFunction = function(selectedItemID)
{
window.opener.<%=Request.QueryString["CallbackFunctionName"]%>(selectedItemID);
}
or maybe just the opening user control ID:
var CallbackFunction = function(selectedItemID)
{
window.opener.OnItemSelection_<%=Request.QueryString["UserControlID"]%>(selectedItemID);
}
My questions are:
1) Is it a bad practice passing javascript function names (or user control IDs) like that (I suspect it is)?
2) What could be better way to handle this scenario? Edit: Another way I'm considering now is declaring a global variable in the user control (registering it from the code behind so it'll appear only once). Then, when opening the new window, it's possible to assign the relevant function to it (OnItemSelection_<%=this.ID%>), and call it from the new window. Seems much cleaner than passing user control data through the query string.
I have a page that contains a few user controls which all use an id in a querystring. I want to change this so that the page can send the id to the user control and can call a function on the user control.
Also is it possible for the user control to get the id from the page or a control on the page as its parent?
I think I summed up the question in the title. Here is some further elaboration...I have a web user control that is used in multiple places, sometimes more than once on a given page.The web user control has a specific set of JavaScript functions (mostly jQuery code) that are containted within *.js files and automatically inserted into page headers.However, when I want to use the control more than once on a page, the *.js files are included 'n' number of times and, rightly so, the browser gets confused as to which control it's meant to be executing which function on.What do I need to do in order to resolve this problem? I've been staring at this all day and I'm at a loss.
I am trying to call some javascript functions which I ahve written in some file. Eg.
function OpenPopup() { alert("OpenPopUp"); return false; }
when I call this from button from OnClientClick = "OpenPopup()" it is not called but when I put this function on MasterPage it is able to call the function.I added this is the MasterPages's Head
I have a JavaScript-based timeline which needs to use data from an SQL server. The queries and the JSON conversions have been worked out in the form of C#.NET functions within a code file related to an .aspx page. So for a complete newbie to ASP.NET, how do you set up a function call like this from JavaScript?I would love it if someone had some simple example code I could learn/get some pointers from.Edit: I am using .NET 3.5
I have a page with three HTML labels and their corresponding ASP.NET gridviews contained within divs. Now while learning jQuery, I am trying to achieve two things:1. Change the css class of the lables upon mouse hover/out.2. Slide up/down the grid div upon clicking of the labels.It looks to be working as expected, but I wish to know if I am doing it the right way.My complete jQuery code is:
And I am calling these function from onmouseover, onmouseout and onclick events of the label controls passing in the label ID as parameter. As an example:
<label id="lblWebComp" class="gridLabelDefault" onmouseover="ColorChange('lblWebComp')" onmouseout="ColorChange('lblWebComp')" onclick="ShowHide('gvDivWC')"> Web Components </label>
Kindly let me know if this is the best way to achieve these effects? Don't I have to right the document ready function in the jQuery code?
I've got a Jquery function that I wrote which blacks out the screen after a certain amount of inactivity, creates a pop-up that allows the user to click a button to stay logged in, and logs them out (closing the application window) if they do not respond in time.
The environment is ASP.NET (VB). We don't technically use master pages, but we do have a parent page in which our header, footer and nav reside, and my Jquery code is called from that window, loaded via an IFrame.My problem is that if one is working in a child window, the parent window doesn't recognize that the system is in use, and will automatically engage at the allocated time.I've tried everything under the sun I can think of and nothing works properly. My event handler is working, and it does call the parent window function, but the timer is not being reset.
I have this function in the parent window:
<script language="javascript" type="text/javascript"> function window.reportChildActivity() { SESSION_ALIVE = true; [code]....
I have an ImageButton and a FileUpload controls in a child page of a master page. I would like to achieve something like when user click on the ImageButton, the browse file window will pop-up like what we did when we click on the Browse button of the FileUpload control.
How can call the browse file window of the FileUpload control when i click on the ImageButton?
I have an .aspx.cs page in my solution and I'm trying to call a function which is located in a Master page.Would anyone be able to offer any pointers on how to achieve this as I cannot figure it out - thought it would have been fairly straight forward!
I am using one webservice, which is for .NET platform, for address validation.Its running successfully on .NET (C#). However, I also want to use the same service from classic asp (legacy code) pages. Would appreciate if someone could give a clue how togo about it? Here are some ideas that I came up with and would appreciate if you could add to it
I get this error: Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class.
Partial Class _Default Inherits System.Web.UI.Page <WebMethod()> _ Public Shared Function ParseData() As String Dim value as string = GetValue() End Function Private Function GetValue() as String Return "halp" End Function End Class
I know it has something to do with the fact that the first function is shared and the second function should probably be Public as well but I don't fully understand the reason behind it. Probably not relevant but I'm calling the web method from some javascript.
i have a web page and inside the page has a placeholder that contains 2 user controls and both visible set to false.
When i click on button1 on the page, it will set the visible of usercontrol1 to true. May i know how do i do it so that when i click on button2 that IS INSIDE usercontrol1, it will hide usercontrol1 from placeholder and set usercontrol2 visible =true?
I want to call a validate function on asp:button click event and also want to do some server side work on this click like adding values to session variables and redirecting page to new one.
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 doing one chat application in that chat application i have one private chat now i want if i click one user logo that pop chat window automatically fired in that user window how do i that
I am getting an error while calling a javascript from a dropdownlist which is placed inside a modal pop-up panel. if i am ebeding a small script like onchange="javascript:alert('hello');", it works fine. But if i m using <script> </script> for embeding a javascript its showing 'object doesn't support this property' error. when i debugged it the compiler does not get into the javascript function.
i'm trying to learn about user controls. I created a user control that has a textbox and a button. What i'd like to be able to do is when i click the button in the user control, populate a label in the aspx page. I understand that i could just have a button on the page that uses some properties on the user control to get that information.. but i'd like to know how to do it with the button the user control.. the reason for this is the button is just an example.. a learning tool. if i can get this working, i'd likely be putting thing in the user control that might require this kind of passing information. Anyway.. i've found some c# examples that i tried to get working as vb.. but once started getting into the delegates and events.. well.. it made me turn to this post.
I am using a user control that I created (just a .cs file not an .ascx file), that does some magic and depending on a value generated by the control, I need it to do something on the parent page that is 'hosting' the control. It needs to call a method under certain circumstances (method is on the parent control).the control is placed on the parent page like so:
I'm dynamically creating buttons etc on the control itself but when a button is clicked, let's say for example that there's a text box on the control and if the value of the textbox is "bob" it needs to call a method on the page that's housing the control...how can I accomplish this?
I have a Web Form that uses Master Pages. I only tell you this part so you understand the layers.
On the page, I have a web user control. I can see public methods on that user control by simply calling userControlName.PublicMethod();
However, there is a button on this page which generates additional content. This content is based on a placeholder control and adding additional web user controls :
[Code]....
Now, on the main form, I want a submit button that will call a public method of each "subForm" that was added at runtime.
I have tried various forms of Control C = This.Page.Master.FindControl("cpBody").Findcontrol("ctl01")... etc, but can never seen to get the right combination.
Does anyone know how I would go about calling a method found in the master page code behind from a user control's code? The user control is on the master page. The method I want to call is public.
I can easily call a method found in the pages code behind using:
I have an aspx page which has an usercontrol say UC1 for selecting query paramters.
UserControl uc1 in turn opens another user control (UC2) as a modal popup.
1. On OK click, I am setting the values of another usercontrol (uc1) from the control uc2 by invoking a page method(doAccept). It appears to call the method and values seems to be set. But the problem the usercontrol/page does not display the new value or in otherwords it is not refreshed.
If the above is not possible is there any other way to refresh the parent page.