C# - Calling A Method On The Parent Page From A User Control?
May 3, 2010
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 looked up the threads about this. But I couldn't do it...
this is my method in aspx.page:
public void MesajlariGetir() { DataSet ds = new DataSet(); SqlConnection con = new SqlConnection(); SqlCommand cmd = new SqlCommand("msjlarigetir", con);
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.
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.
i would like to ask about how can i open user control page when i click a button on parent page, also, can i call parent's method from user control page and then refresh parent page?
In my default.aspx page I have a PlaceHolder control within an UpdatePanel. In this placeholder control I will dynamically load a web user control, which is just a form with a submit button. On this user control, I have the form within an update panel and I have the "Submit" button's Click Event added to the triggers.
When I submit the form, the UpdatePanel on the web user control nor the update panel on the default.aspx page are capturing the post back, thus causing a full post back which refreshes my page.
how to capture this post so its rendered in Ajax and not a full post back?
I have created one user control for changing the theme of the page where i have several buttons and on click of each button i am applying the theme of clicked buttons color and for that i have created several css files like red.css, blue.css , green.css etc.
now i want to apply this theme to the page but i am not able to do that from the user control as because i am not getting the stylesheet property in the page and thus i am not able to work further.
can anyone tell me how can i apply the theming from user control to the page its being called.?
I have a hidden field on my default.aspx page. Within default.aspx page I have a user control which has a label on it. I need the label to display the value on the hidden field. How can I go about this?
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.
Basically, I have a user control with a set of input controls such as textboxes and radio buttons. It also has a button along with these controls. What I want is that when the user clicks this particular button, the data entered in the input fields must get updated into a grid in the parent page.
I have a login control and at is nested 2 deep in a header control i.e Page --> Header Control --> Login Control. I cannot get a reference to the control on the page using FindControl. I want to be able to set the visible property of the control like
[code]....
I ended up using a recursive FindControl method to find the nested control.
but it is throwing as exception Object reference not set to an instance of an object.How can I access user control's gridview control from parent page?
protected void Page_Load(object sender, EventArgs e) { LoadMyControl(Parameters); //Do it every page load to preserve it's state } protected void LoadMyControl(string parameters) { plchld.Controls.Clear(); Control userControl = LoadControl("TheUserControl.ascx"); userControl.ID = "userControl1"; plchld.Controls.Add(userControl); }
Now inside this control, when a button is clicked I want to update ,let's say a Label on the hosting page. What is the best way to do it? Custom event?
how to call a function of user control from the parent page?
I have a user control inside of default.aspx page, And I have a function in the code behind of user control. I need to call that function from a code behind of default.aspx
Is it possible to do this? Or do I need to make a server control for this functionality? I have it being able to be set in the Page_Init, but I'd like to make it as similar to actual controls as possible. Also, if it is possible to access via the Events section under Properties, that would be good and 2. I am trying to register the web user control as an AsyncPostbackTrigger for another UpdatePanel. With the previous question in mind, is it also possible to set this via the GUI, or does this need to be set programmatically as well?
I have a LinkButton within a User Control and it has handled with:
Private Sub LoginLinkLinkButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LoginLinkLinkButton.Click Response.Redirect("/", True) End Sub
On certain ASPX pages I would like to handle the click from the page's code behind, opposed to within the user control. How do I override the handle within the control from the parent's code behind page?
Update:
Based on the answer, I have the following no added to the User Control:
[code]....
The problem is determining the correct syntax for the if line because the above is invalid.
I have an EDIT.ASPX page and on that page I have some labels and textboxes and a user control. I listed all the related codes you can have a clear picture - not all of the codes are given me a problem. ONLY ONE.
HELP ---> On the Uer control (SiteTemplate2.ascx) I have a DataList that is being populated by the database and that works fine. I have a CHECKBOX on the user control page each time the user check the CHECKBOX the user control content totally disappears from the EDIT.ASPX page. There is no error message -- I believe this is a post back error but I don't know how to fix it.
Goal: Each time the checkbox called (CHKBSideBar) is clicked on the user control page all of the page content should stay in place that include
EDIT.ASPX Page and the refeneced USER CONTROL. I should be implement a CheckedChanged Function without either of the pages lossing DATA. I need to be able to access post back event from the user control of the Edit.aspx page. When the user click a box on the user control page how do I keep the same Page_Load event on the edit page. I need to reference the Edit page from the user control.
Note: The edit page loads the user control (SiteTemplate2.ascx)SEE CODES BELOW
I know this is a lot and thank you in advanced for your help. I tried to include all the pages that are key players. I must user the user control bacuase the user can select different template so eliminating the user control is not an option.
I'm using a custom AJAX based validation control to check user name availability from database. It's working alright in my development machine but in production server we are using Windows Authentication to authenticate by domain.The control is inherited from base validator and checks for user name availability from database perfectly but on form submission at Page.IsValid check it gives the following error.
remote server returned an error 401 unauthorized
Both the form and webmethod are in the same page/file. I even tried creating webmethod in a separate standalone webservice but error still there.
I have a page called main.apsx and on that page I have a multiview with a couple of view panes. In main.aspx I also have an have a buttons.ascx file with a few link buttons. When these buttons are clicked I want them to show the the selected view panels in multiview in main.aspx.
I cant seem to figure out where to put the action code for the link buttons. Do I put it into my buttons.ascx.cs file or into main.aspx.cs? I presume in buttons.ascx.cs, but if I do that, how will the buttons find the multiview control?
This is the code for on of my buttons in buttons.ascx.cs
[Code]....
When I run it like this is gives an error
The name 'MultiView1' does not exist in the current
I have a user control that has several data components
What I want to do is populate the data components based on the parent's page title where the user control is called.
The parent page title is the most logical unique name to each page and so that would be the name that I want to import
as the default value for the data components select parameter. Each page name is stored in my sql data table [Towns] as TownsName.
The general idea is that the control will populate with the towns data based on the page title of the parent page.
<SelectParameters> <asp:ControlParameter ControlID="DetailsView3" DefaultValue="PAGE TITLE NAME GOES HERE" Name="TownsName" PropertyName="SelectedValue" Type="String" /> </SelectParameters>
I am not sure how to code this correctly, but I am sure it would have to be called in the page load statement.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load SetAttr(DetailsView3.DefaultValue = Parent.Page.Title())<-------THIS OFCOURSE DOES NOT WORK End Sub
I have spent a couple of days trying to work this one out and have failed to find a workable solution..
I have a user control with contact form and validators, when I add it (user control) to my parent page I get a strange behavior of all buttons within the parent page, Any button I press on the parent page fires the validators of the user control. How can I vallidate the form on my user control only when I press a specific button?
I have a user controlThe user selects some items from user control (check box list)User clicks update button on user control The new rows get updated on a gridview on calling page & user control is hidden
a)I have made the user control but I dont know how to return the results and bind them with gridview on my calling page.
b) Update: If I create the update button outside the user control and on my calling page and then on its button click event Isomehow access user control checkbox list selected items would that be a good approach ? And how to do this stuff ?