control not found on postback

I

Igor Belagorudsky

Hi,

i am trying to analyze data submitted in a form but the problem is that when
i try to create the controls in code (which is what i want to do), it throws
an obect not found exception on postback when i try to Page.FindControl:

private void Page_Load(object sender, System.EventArgs e)
{
if (Page.IsPostBack)
{

Debug.WriteLine(((WebControl)Page.FindControl("testBox_1")).Attributes["hell
o"]);
}
else
{
TextBox txt = new TextBox();
txt.ID = "testBox_1";
txt.Attributes.Add("hello", "hi");
Page.FindControl("test").Controls.Add(txt);
}
}

where control "test" is the form that i am submitting and all im trying to
do is to debug.writeline "hi" on postback.
on the other hand, if i manually put a text box in the aspx page and give it
a hello=hi attribute, everything works like it should.
can someone please tell me what the problem is?

thanks,
igor
 
B

bruce barker

you have to create the dynamic control on postback also. also for it to have
access to its postback data, you should create it during onint, as form load
is too late, the datapostback event has already fired.

-- bruce (sqlwork.com)
 
I

Igor Belagorudsky

hi,

thanks for your response, but i have a more complicated structure
unfortunately...

i dont need to display the same page on postback. i have a sort of
questionnaire setup where my page checks what questions to ask in the db,
creates appropriate form elements and waits for submission. then it writes
down answers and displays the next questions in the same page. so i really
need the data from my dynamic control without having to recreate it on the
page.. is this possible and if so at which point would i be able to check
its data? oninit?

thank you,
igor

bruce barker said:
you have to create the dynamic control on postback also. also for it to have
access to its postback data, you should create it during onint, as form load
is too late, the datapostback event has already fired.

-- bruce (sqlwork.com)


Igor Belagorudsky said:
Hi,

i am trying to analyze data submitted in a form but the problem is that when
i try to create the controls in code (which is what i want to do), it throws
an obect not found exception on postback when i try to Page.FindControl:

private void Page_Load(object sender, System.EventArgs e)
{
if (Page.IsPostBack)
{
Debug.WriteLine(((WebControl)Page.FindControl("testBox_1")).Attributes["hell
o"]);
}
else
{
TextBox txt = new TextBox();
txt.ID = "testBox_1";
txt.Attributes.Add("hello", "hi");
Page.FindControl("test").Controls.Add(txt);
}
}

where control "test" is the form that i am submitting and all im trying to
do is to debug.writeline "hi" on postback.
on the other hand, if i manually put a text box in the aspx page and
give
it
a hello=hi attribute, everything works like it should.
can someone please tell me what the problem is?

thanks,
igor
 
M

MS News

Igor,

I am having the same problem here.
I am going to Try this:
on Page postback recreate the same dynamic controls first
Process the results
then create the new questions
response

I know this is inefficient but what else to do other than some java script??

Let us know if this works


Igor Belagorudsky said:
hi,

thanks for your response, but i have a more complicated structure
unfortunately...

i dont need to display the same page on postback. i have a sort of
questionnaire setup where my page checks what questions to ask in the db,
creates appropriate form elements and waits for submission. then it writes
down answers and displays the next questions in the same page. so i really
need the data from my dynamic control without having to recreate it on the
page.. is this possible and if so at which point would i be able to check
its data? oninit?

thank you,
igor

bruce barker said:
you have to create the dynamic control on postback also. also for it to have
access to its postback data, you should create it during onint, as form load
is too late, the datapostback event has already fired.

-- bruce (sqlwork.com)


that
when
Debug.WriteLine(((WebControl)Page.FindControl("testBox_1")).Attributes["hell
o"]);
}
else
{
TextBox txt = new TextBox();
txt.ID = "testBox_1";
txt.Attributes.Add("hello", "hi");
Page.FindControl("test").Controls.Add(txt);
}
}

where control "test" is the form that i am submitting and all im
trying
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top