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?
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
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
ASKER
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.
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>
Ok I was thinking the other way.
Then you can access the controls using javascript
var control = window.frames[<framename>] .document. getElement ById('<con trolname>' )
then get the value from control and do what ever you want.
But the same thing cannot be done from server side code.
Then you can access the controls using javascript
var control = window.frames[<framename>]
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
ASKER
I said accessing serverside control from serverside operation, no javascript.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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('s omeId_Hidd en').value = parent.document.getElement ById('getm e').value
where "getme" is a serverSide Control ID in main page.
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('s
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
<asp:HiddenField ID="HiddenField1" runat="server" />
In server side you can access it as HiddenField1.value to get its value
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