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
758 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Salesforce Made Easy to Use

On-screen guidance at the moment of need enables you & your employees to focus on the core, you can now boost your adoption rates swiftly and simply with one easy tool.

 

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

Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

Question has a verified solution.

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

Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
Come and listen to Percona CEO Peter Zaitsev discuss what’s new in Percona open source software, including Percona Server for MySQL (https://www.percona.com/software/mysql-database/percona-server) and MongoDB (https://www.percona.com/software/mongo-…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

691 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