Link to home
Start Free TrialLog in
Avatar of Abdu_Allah
Abdu_Allah

asked on

How to access server control from another page?

Hi, I have two pages main.aspx and list.aspx, the main.aspx page contains an iframe which is loaded by list.aspx page, now I want to access a server control in main.aspx page from list.aspx page, how can I do that?
Avatar of Toms Edison
Toms Edison
Flag of India image

You can access the data of one page in another page only when the first page is redirecting or transfering code execution to the second page.
Hope the below links will help you
http://msdn.microsoft.com/en-us/magazine/cc163722.aspx

You can get more samples on net if you search on how to use "PreviousPage" property in asp.net




Avatar of Abdu_Allah
Abdu_Allah

ASKER

There is no redirecting or transferreing in my case. The list.aspx page will do some serverside operations and within these operation I must access the control in main.aspx page.
Does that mean that you are not redirecting or submitting main.aspx page to list.aspx page?

If that is the case then you wont be able to access controls that are in main.aspx from list.aspx page.

When ever you request for a page, whether it is on postback or not, asp.net will be creating a new instance of the page and add the data in viewstate to the corresponding controls. The instance of other pages wont be available. That is how ASP.NET works, not like windows applications. But you can access data from one page in another through session variables, or by storing in a database or cookies

For more info on passing data from one page to another
http://forums.asp.net/t/1315570.aspx

Hope that clarifies
The instances of main.aspx and list.aspx are both alive, because list.aspx is within iframe in main.aspx.
Sure you can get the Value of a parent window that contains a iframe, but it all depends what you want to do with the Value.

For Example, Server Side using pure Asp.net you are able to do this. but by using client side javaScript, you can get the Value of Parent Windows's Server Control Such as (Textbox, Div span) Values.

So as long as you know the ClientID of a control you can access its values. But please keep in mind you can not mix javaScript Code with Aspx Code.


IFrame Code:
 
<input type="button" onClick="alert(parent.document.getElementById('getme').value)" value="Get 
 
main Windows's Textbox">
 
 
Parent Window Code:
 
<input type="text" id="getme">
 
<iframe src="hello.html">
Parent Windows's Textbox Content">
</iframe>

Open in new window

Ok I was thinking the other way.
Then you can access the controls using javascript
var control = window.frames[<framename>].document.getElementById('<controlname>')

then get the value from control and do what ever you want.
But the same thing cannot be done from server side code.
If you want to pass this value to server code assign the value to a hidden variable and access from server side code
I said accessing serverside control from serverside operation, no javascript.
ASKER CERTIFIED SOLUTION
Avatar of Saqib Khan
Saqib Khan
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
how do you access a hidden feild from serverside function!
Lets Talk About Iframe Code.

User Clicks on a Button within Iframe Page to get the Value of a control in Main Page.
in I Frame you must have a Hidden Field.
<input type="hidden" runat="server" id="someId_Hidden" />

now when you click button in Iframe, update the Value of hidden field with the Value of the Server Side control  of main window(using javaScript).

document.getElementById('someId_Hidden').value = parent.document.getElementById('getme').value

where "getme" is a serverSide Control ID in main page.
You can access a hidden field in server side control the same way you access other controls suppose your hidden field is named HiddenField1
<asp:HiddenField ID="HiddenField1" runat="server" />

In server side you can access it as HiddenField1.value to get its value