467,145 Members | 1,089 Online
Bytes | Developer Community
Ask Question

Home New Posts Topics Members FAQ

Post your question to a community of 467,145 developers. It's quick & easy.

Make a control Readonly using the controls Collection

GP
Is it possible to iterate through all the controls collection and make the
textboxes alone as read only.I don't see a readonly property for the
Control.Can some one help me in this context?
I want to do something like this below.But I get a message Readonly is not
valid property.
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
ctl.ReadOnly=false;
}

Nov 18 '05 #1
  • viewed: 6887
Share:
10 Replies
I believe what you are after is:
..GetType()
--
Curt Christianson
Owner/Lead Developer, DF-Software
Site: http://www.Darkfalz.com
Blog: http://blog.Darkfalz.com
"GP" <GP@discussions.microsoft.com> wrote in message
news:C0**********************************@microsof t.com...
Is it possible to iterate through all the controls collection and make the
textboxes alone as read only.I don't see a readonly property for the
Control.Can some one help me in this context?
I want to do something like this below.But I get a message Readonly is not
valid property.
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
ctl.ReadOnly=false;
}

Nov 18 '05 #2
why dont you do a explicit typecast and then get its readonly property
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
{
((TextBox)ctl).ReadOnly = false;
}
}

i think this should do the job
--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:C0**********************************@microsof t.com...
Is it possible to iterate through all the controls collection and make the
textboxes alone as read only.I don't see a readonly property for the
Control.Can some one help me in this context?
I want to do something like this below.But I get a message Readonly is not
valid property.
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
ctl.ReadOnly=false;
}

Nov 18 '05 #3
"GP" <GP@discussions.microsoft.com> wrote in message
news:C0**********************************@microsof t.com...
Is it possible to iterate through all the controls collection and make the
textboxes alone as read only.I don't see a readonly property for the
Control.Can some one help me in this context?
I want to do something like this below.But I get a message Readonly is not
valid property.

foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
{
TextBox txt = (TextBox) ctl;
txt.ReadOnly=false;
}
}
-----
John Saunders
Nov 18 '05 #4
GP
Hi Hermit Dave,

Thanks for you response.
This time it didn't error me out, but none of my text boxes is set to
readonly.
My text boxes are declared using System.Web.UI.WebControls.TextBox,Is it
considered of Type TextBox too while using the Controls iteration.

Thanks
GP
"Hermit Dave" wrote:
why dont you do a explicit typecast and then get its readonly property
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
{
((TextBox)ctl).ReadOnly = false;
}
}

i think this should do the job
--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:C0**********************************@microsof t.com...
Is it possible to iterate through all the controls collection and make the
textboxes alone as read only.I don't see a readonly property for the
Control.Can some one help me in this context?
I want to do something like this below.But I get a message Readonly is not
valid property.
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
ctl.ReadOnly=false;
}


Nov 18 '05 #5
Yeap unless you have another control with the name TextBox it should map to
System.Web.UI.WebControls.TextBox

Get into Debug mode. put in a break point and see if its getting executed.
also try setting Enabled property to false.

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:BD**********************************@microsof t.com...
Hi Hermit Dave,

Thanks for you response.
This time it didn't error me out, but none of my text boxes is set to
readonly.
My text boxes are declared using System.Web.UI.WebControls.TextBox,Is it
considered of Type TextBox too while using the Controls iteration.

Thanks
GP
"Hermit Dave" wrote:
why dont you do a explicit typecast and then get its readonly property
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
{
((TextBox)ctl).ReadOnly = false;
}
}

i think this should do the job
--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:C0**********************************@microsof t.com...
Is it possible to iterate through all the controls collection and make the textboxes alone as read only.I don't see a readonly property for the
Control.Can some one help me in this context?
I want to do something like this below.But I get a message Readonly is not valid property.
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
ctl.ReadOnly=false;
}


Nov 18 '05 #6
GP
Thanks for your responses.
When I set to readonly it didn't work.Still I am able to edit the controls.
But when I set the control enabled=false.I see the text boxes disabled.
But I want the text box to be read only,so that I can get the values in the
viewstate.
foreach (Control ctl in pnlBenefits.Controls)
{
s= ctl.GetType().Name;
if (s == "TextBox")
{
((TextBox)ctl).ReadOnly = false;
}
}
}
Even I tried TextBox txt = (TextBox) ctl;
txt.ReadOnly=false;

Thanks
GP

"Hermit Dave" wrote:
Yeap unless you have another control with the name TextBox it should map to
System.Web.UI.WebControls.TextBox

Get into Debug mode. put in a break point and see if its getting executed.
also try setting Enabled property to false.

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:BD**********************************@microsof t.com...
Hi Hermit Dave,

Thanks for you response.
This time it didn't error me out, but none of my text boxes is set to
readonly.
My text boxes are declared using System.Web.UI.WebControls.TextBox,Is it
considered of Type TextBox too while using the Controls iteration.

Thanks
GP
"Hermit Dave" wrote:
why dont you do a explicit typecast and then get its readonly property
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
{
((TextBox)ctl).ReadOnly = false;
}
}

i think this should do the job
--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:C0**********************************@microsof t.com...
> Is it possible to iterate through all the controls collection and make the > textboxes alone as read only.I don't see a readonly property for the
> Control.Can some one help me in this context?
> I want to do something like this below.But I get a message Readonly is not > valid property.
> foreach (Control ctl in pnlBenefits.Controls)
> {
> if (ctl is TextBox)
> ctl.ReadOnly=false;
> }
>
>
>


Nov 18 '05 #7
i think it could be based on rendering of the textbox. at the end of the day
its the browser that acts on the html attribute in the element and makes it
readonly.
with enabled = false i think you cannot do anything with the instance. ie no
modifications cant even get the focus. you still have access to the object
and the viewstate etc from serverside. The enabled = false is only for
client side rendering.

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:7D**********************************@microsof t.com...
Thanks for your responses.
When I set to readonly it didn't work.Still I am able to edit the controls. But when I set the control enabled=false.I see the text boxes disabled.
But I want the text box to be read only,so that I can get the values in the viewstate.
foreach (Control ctl in pnlBenefits.Controls)
{
s= ctl.GetType().Name;
if (s == "TextBox")
{
((TextBox)ctl).ReadOnly = false;
}
}
}
Even I tried TextBox txt = (TextBox) ctl;
txt.ReadOnly=false;

Thanks
GP

"Hermit Dave" wrote:
Yeap unless you have another control with the name TextBox it should map to System.Web.UI.WebControls.TextBox

Get into Debug mode. put in a break point and see if its getting executed. also try setting Enabled property to false.

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:BD**********************************@microsof t.com...
Hi Hermit Dave,

Thanks for you response.
This time it didn't error me out, but none of my text boxes is set to
readonly.
My text boxes are declared using System.Web.UI.WebControls.TextBox,Is it considered of Type TextBox too while using the Controls iteration.

Thanks
GP
"Hermit Dave" wrote:

> why dont you do a explicit typecast and then get its readonly property > foreach (Control ctl in pnlBenefits.Controls)
> {
> if (ctl is TextBox)
> {
> ((TextBox)ctl).ReadOnly = false;
> }
> }
>
> i think this should do the job
> --
>
> Regards,
>
> Hermit Dave
> (http://hdave.blogspot.com)
> "GP" <GP@discussions.microsoft.com> wrote in message
> news:C0**********************************@microsof t.com...
> > Is it possible to iterate through all the controls collection and make
the
> > textboxes alone as read only.I don't see a readonly property for
the > > Control.Can some one help me in this context?
> > I want to do something like this below.But I get a message

Readonly is not
> > valid property.
> > foreach (Control ctl in pnlBenefits.Controls)
> > {
> > if (ctl is TextBox)
> > ctl.ReadOnly=false;
> > }
> >
> >
> >
>
>
>


Nov 18 '05 #8
GP
Thanks for you answer
"Hermit Dave" wrote:
i think it could be based on rendering of the textbox. at the end of the day
its the browser that acts on the html attribute in the element and makes it
readonly.
with enabled = false i think you cannot do anything with the instance. ie no
modifications cant even get the focus. you still have access to the object
and the viewstate etc from serverside. The enabled = false is only for
client side rendering.

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:7D**********************************@microsof t.com...
Thanks for your responses.
When I set to readonly it didn't work.Still I am able to edit the

controls.
But when I set the control enabled=false.I see the text boxes disabled.
But I want the text box to be read only,so that I can get the values in

the
viewstate.
foreach (Control ctl in pnlBenefits.Controls)
{
s= ctl.GetType().Name;
if (s == "TextBox")
{
((TextBox)ctl).ReadOnly = false;
}
}
}
Even I tried TextBox txt = (TextBox) ctl;
txt.ReadOnly=false;

Thanks
GP

"Hermit Dave" wrote:
Yeap unless you have another control with the name TextBox it should map to System.Web.UI.WebControls.TextBox

Get into Debug mode. put in a break point and see if its getting executed. also try setting Enabled property to false.

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"GP" <GP@discussions.microsoft.com> wrote in message
news:BD**********************************@microsof t.com...
> Hi Hermit Dave,
>
> Thanks for you response.
> This time it didn't error me out, but none of my text boxes is set to
> readonly.
> My text boxes are declared using System.Web.UI.WebControls.TextBox,Is it > considered of Type TextBox too while using the Controls iteration.
>
> Thanks
> GP
>
>
> "Hermit Dave" wrote:
>
> > why dont you do a explicit typecast and then get its readonly property > > foreach (Control ctl in pnlBenefits.Controls)
> > {
> > if (ctl is TextBox)
> > {
> > ((TextBox)ctl).ReadOnly = false;
> > }
> > }
> >
> > i think this should do the job
> > --
> >
> > Regards,
> >
> > Hermit Dave
> > (http://hdave.blogspot.com)
> > "GP" <GP@discussions.microsoft.com> wrote in message
> > news:C0**********************************@microsof t.com...
> > > Is it possible to iterate through all the controls collection and make the
> > > textboxes alone as read only.I don't see a readonly property for the > > > Control.Can some one help me in this context?
> > > I want to do something like this below.But I get a message Readonly is not
> > > valid property.
> > > foreach (Control ctl in pnlBenefits.Controls)
> > > {
> > > if (ctl is TextBox)
> > > ctl.ReadOnly=false;
> > > }
> > >
> > >
> > >
> >
> >
> >


Nov 18 '05 #9
Hello John,

This may work too...

foreach (TextBox tb in pnlBenefits.Controls)
{
tb.ReadOnly = false;
}

--
Matt Berther
http://www.mattberther.com
"GP" <GP@discussions.microsoft.com> wrote in message
news:C0**********************************@microsof t.com...
Is it possible to iterate through all the controls collection and
make the
textboxes alone as read only.I don't see a readonly property for the
Control.Can some one help me in this context?
I want to do something like this below.But I get a message Readonly
is not
valid property.

foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
{
TextBox txt = (TextBox) ctl;
txt.ReadOnly=false;
}
}
-----
John Saunders


Nov 18 '05 #10
I've done it today with a client script. You can place this snippet at the
botton of the page or within a funcion you call when you want. You can write
it in the aspx file or render it exactly where you want.

this is a sample, hope it helps:

<script language="javascript">
<!--
var inputs = document.getElementsByTagName("INPUT");
var selects = document.getElementsByTagName("SELECT");

for (var i = 0;i<inputs.length;i++)
{
if ( (inputs[i].type == "text") && (inputs[i].disabled) )
{

inputs[i].disabled = false;
inputs[i].readOnly = true;
inputs[i].className = "Normal";
inputs[i].tabIndex = -1;

}
}

for (var i = 0;i<selects.length;i++)
{
selects[i].className = "Normal";
selects[i].tabIndex = -1;
selects[1].readOnly = true;
}
//-->
</script>

"GP" <GP@discussions.microsoft.com> wrote in message
news:C0**********************************@microsof t.com...
Is it possible to iterate through all the controls collection and make the
textboxes alone as read only.I don't see a readonly property for the
Control.Can some one help me in this context?
I want to do something like this below.But I get a message Readonly is not
valid property.
foreach (Control ctl in pnlBenefits.Controls)
{
if (ctl is TextBox)
ctl.ReadOnly=false;
}

Nov 18 '05 #11

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by paul meaney | last post: by
3 posts views Thread by sean | last post: by
1 post views Thread by ANDRES BECERRA | last post: by
7 posts views Thread by charliewest | last post: by
reply views Thread by Mike | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.