Solved

How to enable / disable ALL controls (textboxes, dropdowns, checkboxes) on a page (on page load) based on some values in database?

Posted on 2009-07-04
6
745 Views
Last Modified: 2012-05-07
Hi,

I want to disable (make it read only)
all user input controls (like textboxes, dropdowns, checkboxes, radiobuttons)
on a page (on page load) based on some value in the database.

How do I achieve this?
0
Comment
Question by:meetpd
  • 3
  • 2
6 Comments
 
LVL 1

Assisted Solution

by:JaressLoo
JaressLoo earned 200 total points
ID: 24779016
I usually do this by creating some sort of method called "ResetFields()" and then call it in the Page_Load function.

Make sure to check if the page is posted back first:

If (!IsPostBack) {
    ResetFields();
}

As far as getting the value from the database, you can do something like the attached code snippet.

I wrote this from the top of my head just in the text box...so I had no error checking...
using System.Data.SqlClient;
 
String connStr = ConfigurationManager.ConnectionStrings("ConnectionStringName").ToString();
 
SQLConnection sqlcon = New SQLConnection;
SQLCommand SQLcom = new SQLCommand;
sqlcon.ConnectionString = connStr;
sqlcom.CommandText = "SELECT Whatever FROM Table";
sqlcom.Connection = sqlcon;
sqlcom.Connection.Open();
String result = sqlcom.ExecuteScalar();
sqlcom.Connection.Close();

Open in new window

0
 

Author Comment

by:meetpd
ID: 24779025
Thanks for the quick reply.

Can you please tell me which line actually does the disabling part?

0
 
LVL 1

Expert Comment

by:JaressLoo
ID: 24779055
YourControlName.Enabled = False;

Sorry. I didn't put it. That goes in ResetFields() routine.

I'm on my iPhone right now. Sorry for the brief response.
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:meetpd
ID: 24779582
The way you suggested, we will have write command for each and every control..I want a way by which ALL controls are disabled in one shot...
0
 
LVL 5

Accepted Solution

by:
Buginator earned 300 total points
ID: 24780007
Hi,

here you go. I put most of the controls, but add controls as you like (as long as they have the "Enabled" property).


//Run method:
DisableAllControls(Page);
 
//Code for method
    private void DisableAllControls(Control Page)
    {
        foreach (Control ctrl in Page.Controls)
        {
            if (ctrl is TextBox) ((TextBox) (ctrl)).Enabled = false;
            else if (ctrl is Button) ((Button)(ctrl)).Enabled = false;
            else if (ctrl is DropDownList) ((DropDownList)(ctrl)).Enabled = false;
            else if (ctrl is ListBox) ((ListBox)(ctrl)).Enabled = false;
            else if (ctrl is CheckBox) ((CheckBox)(ctrl)).Enabled = false;
            else if (ctrl is CheckBoxList) ((CheckBoxList)(ctrl)).Enabled = false;
            else if (ctrl is RadioButton) ((RadioButton)(ctrl)).Enabled = false;
            else if (ctrl is RadioButtonList) ((RadioButtonList)(ctrl)).Enabled = false;
 
            else
            {
                if (ctrl.Controls.Count > 0) DisableAllControls(ctrl);
            }
        }
    }

Open in new window

0
 
LVL 1

Expert Comment

by:JaressLoo
ID: 24780137
You learn something new every day! :)
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question