C# .NET - Uncheck Problem in CheckBox!!!

Asked By Eswaran Radhakrishnan on 10-Oct-08 06:56 AM
Hi all,

I am working in windows based application. In this application, a form contains 11 panels as 11 rows. I mean 11 panel as one by one. Each panel consits 11 checkBoxes. if I check any one of the checkBox in any row, i need to provide a functionalites to uncheck the checked checkbox. if i check another one checkbox on the same row, then the previous selected checkBox should be uncheck automatically. I sshould not be uncheck checkbox directly. I need to achieve this by check other checkbox on the same row......

How to do that?

Thanks
RE

Reply

Binny ch replied to Eswaran Radhakrishnan on 10-Oct-08 07:02 AM
Try this code:

In the selected event changed of each checkbox apply this code:

If(checkbox1.check==true)
{
checkbox2.checked==false;
checkbox3.checked==false;
.......................
}

Apply this code to the Seletced event changed of each checkbox, then u can seletc only one checkbox at a time;

Else the best part is to make use of the radiobuttonss.


solutiion

Perry replied to Eswaran Radhakrishnan on 10-Oct-08 07:02 AM

Hi,

I wrote below code for you. Call the updateCheckboxes on checkbox CheckedChanged event. For and example from CheckBox1 checked event your will call like below:

        private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
            {
            try
                {
                updateCheckBoxes(this.Text, CheckBox1.Checked); // 1 is the unique id
                }
                catch(Exception exp)
                {
                throw new Exception(exp.Message);
                }
            }


          private void updateCheckBoxes(string currentChkName, bool checkedVal)
            {
            if(!checkedval) //If user has deselect the checkbox then return without doing anything
             return;
            try
                {
                foreach (Control child in parent.Controls)
                    {
                    if (child.GetType().ToString().Equals("System.Web.UI.WebControls.CheckBox"))
                        {
                           CheckBox chk = (CheckBox)child;
                           if (chk.Text != currentChkName)
                              chk.Checked= false;
                        }
                    }
                }
             catch(Exception exp)
                {
                throw new Exception("SelectAllCheckBoxControls  " + exp.Message);
                }
            }

You will need to make changes based on name of the checkboxes that you have used in same row to work this code for all 11 panels row wise.

Regards,

Megha

use javascript to select all checkbox

Web Star replied to Eswaran Radhakrishnan on 10-Oct-08 07:19 AM
function SelectAll(id)
      {
       var frm = document.forms[0];
           
            for (i=0;i<frm.elements.length;i++)
            {
                if (frm.elements[i].type == "checkbox")
                {
           frm.elements[i].checked = document.getElementById(id).checked;
                }
            }
        }
               
</script>
<!-- assuming that SqlDataSource1 is the datasource for my GridView -->
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" Width="400px">
        <Columns>
            <asp:TemplateField>
                <AlternatingItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" />
                </AlternatingItemTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" />
                </ItemTemplate>
                <HeaderTemplate>
                    <asp:CheckBox ID="cbSelectAll" runat="server" Text="Select All" />
                </HeaderTemplate>
                <HeaderStyle HorizontalAlign="Left" />
                <ItemStyle HorizontalAlign="Left" />
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
he is not using ASP.NET at all.
Perry replied to Web Star on 10-Oct-08 07:22 AM
end of post
REply
alice johnson replied to Eswaran Radhakrishnan on 10-Oct-08 07:24 AM

Here is the function..
function switchCheckbox( objChecked, objUnchecked )
{
objChecked.checked = true;
objUnchecked.checked = false;

if ( objChecked.checked = true )
{
objUnchecked.checked = false;

} else if ( objChecked.checked = false )
{
objUnchecked.checked = true;
}
}

Here is the function to deselect the checkboxes

function uncheck(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = false;
}

I need it in windows application
Eswaran Radhakrishnan replied to Perry on 10-Oct-08 07:43 AM
Hi Megha,

I did as you said. But, I could not select the any checkBox from a row.

for an example if i select a check box from row 5. and If i try to uncheck the same checkbox it should not be happen. Instead of that I need to select the other chekbox. If i select the other checkBox i need to uncheck the previus one.

This process should be happen in each row...

Thanks
RE
reply
Perry replied to Eswaran Radhakrishnan on 10-Oct-08 07:50 AM

The following cond takes care of when uer checks the checkbox and immediately uncheck it.

   if(!checkedval) //If user has deselect the checkbox then return without doing anything
             return;

If you want to do it for all the panel then as I said you have to design some algrorithm and it should be based on checkboxes name that what I mentioned. Suppose you should give all the checkboxes name in Panel1 to panel1_checkbox_1, panel1_checkbox_2 ...panel1_checkbox_10 and for panel2 it should be panel2_checkbox_1, panel2_checkbox_2 .. panel2_checkbox_10. And this will make your life easier and on each checkbox changed event just check for other checkboxes. You need to work it out buddy. Actually I do not have time to write complete code.

Regards,

Megha

TRY THIS CODE
C_A P replied to Eswaran Radhakrishnan on 10-Oct-08 11:40 AM
Here is the javascript:

<SCRIPT LANGUAGE="JavaScript">
<!--
// by Nannette Thacker
// http://www.shiningstar.net
// This script checks and unchecks boxes on a form
// Checks and unchecks unlimited number in the group...
// Pass the Checkbox group name...
// call buttons as so:
// <input type=button name="CheckAll" value="Check All"
//onClick="checkAll(document.myform.list)">
// <input type=button name="UnCheckAll" value="Uncheck All"
//onClick="uncheckAll(document.myform.list)">
// -->

<!-- Begin
function checkAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = true ;
}

function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = false ;
}
// End -->
</script>

Here is the HTML:

<form name="myform" action="checkboxes.asp" method="post">
<b>Your Favorite Scripts & Languages</b><br>
<input type="checkbox" name="list" value="1">Java<br>
<input type="checkbox" name="list" value="2">Javascript<br>
<input type="checkbox" name="list" value="3">Active Server Pages<br>
<input type="checkbox" name="list" value="4">HTML<br>
<input type="checkbox" name="list" value="5">SQL<br>

<input type="button" name="CheckAll" value="Check All"
onClick="checkAll(document.myform.list)">
<input type="button" name="UnCheckAll" value="Uncheck All"
onClick="uncheckAll(document.myform.list)">
<br>
</form>

DataAdapter insertcommand executing problem
ali altan replied to Eswaran Radhakrishnan on 10-Oct-08 03:51 PM
I want to call a stored procedure in package called deneme in oracle database

I try this code ı can add but not delete any record , help

The code is below

using (OracleConnection objConn = new OracleConnection("Data Source=STAJ; User ID=ORS; Password=ORS"))
            {
               
               
              
                OracleDataAdapter objAdapter = new OracleDataAdapter();                
               

                // select komutu
                OracleCommand objSelectCmd = new OracleCommand();              
                objSelectCmd.Connection = objConn;               
                objSelectCmd.CommandText = "pck_deneme.select_deneme";              
                objSelectCmd.CommandType = CommandType.StoredProcedure;               
                objSelectCmd.Parameters.Add("cur_deneme", OracleType.Cursor).Direction = ParameterDirection.Output;              
               
                objAdapter.SelectCommand = objSelectCmd;                 
               
               
                // insert komutu
                OracleCommand objInsertCmd = new OracleCommand();              
                objInsertCmd.Connection = objConn;               
                objInsertCmd.CommandText = "pck_deneme.insert_deneme";              
                objInsertCmd.CommandType = CommandType.StoredProcedure;               
                objInsertCmd.Parameters.Add("p_ad", OracleType.VarChar, 30, "ad");              
                objInsertCmd.Parameters.Add("p_soyad", OracleType.VarChar, 30, "soyad");              
                objInsertCmd.Parameters.Add("p_ıd", OracleType.Number, 7, "ıd");               
              
                objAdapter.InsertCommand = objInsertCmd;
              
               
                // update komutu
                OracleCommand objUpdateCmd = new OracleCommand();              
                objUpdateCmd.Connection = objConn;               
                objUpdateCmd.CommandText = "pck_deneme.update_deneme";              
                objUpdateCmd.CommandType = CommandType.StoredProcedure;
                objUpdateCmd.Parameters.Add("p_ad", OracleType.VarChar, 30, "ad");
                objUpdateCmd.Parameters.Add("p_soyad", OracleType.VarChar, 30, "soyad");
                objUpdateCmd.Parameters.Add("p_ıd", OracleType.Number, 7, "ıd");                     
               
                objAdapter.UpdateCommand = objUpdateCmd;                 

               
                // delete komutu
                OracleCommand objDeleteCmd = new OracleCommand();              
                objDeleteCmd.Connection = objConn;               
                objDeleteCmd.CommandText = "pck_deneme.delete_deneme";              
                objDeleteCmd.CommandType = CommandType.StoredProcedure;               
                objDeleteCmd.Parameters.Add("p_ıd", OracleType.Number, 7, "ıd");              
               
                objAdapter.DeleteCommand = objDeleteCmd;                 

                try               


                {

                DataTable dtdeneme = new DataTable();

                              
                      objAdapter.Fill(dtdeneme);  
               
                    // insert işlemi yapıyor        
                    dtdeneme.Rows.Add(222, "kerim", "kerim");     
                    objAdapter.Update(dtdeneme);

                dataGridView1.DataSource = dtdeneme;

  }              


                catch (Exception ex)              


                {                  


                    MessageBox.Show(ex.ToString());              


                }                


                objConn.Close();          


            }      

///////////////////////////////////////// package content ///////////////////////////////

CREATE OR REPLACE PACKAGE BODY ORS.pck_deneme AS


   procedure select_deneme(cur_deneme out t_cursor)
 is
 begin
   open cur_deneme for select ıd, ad, soyad from deneme; 
 end select_deneme;
 
 
 
 procedure update_deneme(p_ıd number, p_ad varchar2, p_soyad varchar2)
 is
 begin
   update deneme
   set ad=p_ad, soyad=p_soyad
   where ıd=p_ıd;
 end update_deneme;
 
 
 procedure insert_deneme(p_ıd number, p_ad varchar2, p_soyad varchar2)
 is
 begin
   insert into deneme
   values(p_ad,p_soyad,p_ıd);
 
 end insert_deneme;
 
 procedure delete_deneme(p_ıd number)
 is
 begin
    delete from deneme
    where ıd=p_ıd;
 end delete_deneme;

END pck_deneme;
/
DataAdapter insertcommand executing problem
ali altan replied to Eswaran Radhakrishnan on 10-Oct-08 03:52 PM
I want to call a stored procedure in package called deneme in oracle database

I try this code ı can add but not delete any record , help

The code is below

using (OracleConnection objConn = new OracleConnection("Data Source=STAJ; User ID=ORS; Password=ORS"))
            {
               
               
              
                OracleDataAdapter objAdapter = new OracleDataAdapter();                
               

                // select komutu
                OracleCommand objSelectCmd = new OracleCommand();              
                objSelectCmd.Connection = objConn;               
                objSelectCmd.CommandText = "pck_deneme.select_deneme";              
                objSelectCmd.CommandType = CommandType.StoredProcedure;               
                objSelectCmd.Parameters.Add("cur_deneme", OracleType.Cursor).Direction = ParameterDirection.Output;              
               
                objAdapter.SelectCommand = objSelectCmd;                 
               
               
                // insert komutu
                OracleCommand objInsertCmd = new OracleCommand();              
                objInsertCmd.Connection = objConn;               
                objInsertCmd.CommandText = "pck_deneme.insert_deneme";              
                objInsertCmd.CommandType = CommandType.StoredProcedure;               
                objInsertCmd.Parameters.Add("p_ad", OracleType.VarChar, 30, "ad");              
                objInsertCmd.Parameters.Add("p_soyad", OracleType.VarChar, 30, "soyad");              
                objInsertCmd.Parameters.Add("p_ıd", OracleType.Number, 7, "ıd");               
              
                objAdapter.InsertCommand = objInsertCmd;
              
               
                // update komutu
                OracleCommand objUpdateCmd = new OracleCommand();              
                objUpdateCmd.Connection = objConn;               
                objUpdateCmd.CommandText = "pck_deneme.update_deneme";              
                objUpdateCmd.CommandType = CommandType.StoredProcedure;
                objUpdateCmd.Parameters.Add("p_ad", OracleType.VarChar, 30, "ad");
                objUpdateCmd.Parameters.Add("p_soyad", OracleType.VarChar, 30, "soyad");
                objUpdateCmd.Parameters.Add("p_ıd", OracleType.Number, 7, "ıd");                     
               
                objAdapter.UpdateCommand = objUpdateCmd;                 

               
                // delete komutu
                OracleCommand objDeleteCmd = new OracleCommand();              
                objDeleteCmd.Connection = objConn;               
                objDeleteCmd.CommandText = "pck_deneme.delete_deneme";              
                objDeleteCmd.CommandType = CommandType.StoredProcedure;               
                objDeleteCmd.Parameters.Add("p_ıd", OracleType.Number, 7, "ıd");              
               
                objAdapter.DeleteCommand = objDeleteCmd;                 

                try               


                {

                DataTable dtdeneme = new DataTable();

                              
                      objAdapter.Fill(dtdeneme);  
               
                    // insert işlemi yapıyor        
                    dtdeneme.Rows.Add(222, "kerim", "kerim");     
                    objAdapter.Update(dtdeneme);

                dataGridView1.DataSource = dtdeneme;

  }              


                catch (Exception ex)              


                {                  


                    MessageBox.Show(ex.ToString());              


                }                


                objConn.Close();          


            }      

///////////////////////////////////////// package content ///////////////////////////////

CREATE OR REPLACE PACKAGE BODY ORS.pck_deneme AS


   procedure select_deneme(cur_deneme out t_cursor)
 is
 begin
   open cur_deneme for select ıd, ad, soyad from deneme; 
 end select_deneme;
 
 
 
 procedure update_deneme(p_ıd number, p_ad varchar2, p_soyad varchar2)
 is
 begin
   update deneme
   set ad=p_ad, soyad=p_soyad
   where ıd=p_ıd;
 end update_deneme;
 
 
 procedure insert_deneme(p_ıd number, p_ad varchar2, p_soyad varchar2)
 is
 begin
   insert into deneme
   values(p_ad,p_soyad,p_ıd);
 
 end insert_deneme;
 
 procedure delete_deneme(p_ıd number)
 is
 begin
    delete from deneme
    where ıd=p_ıd;
 end delete_deneme;

END pck_deneme;
/
Phil replied to Eswaran Radhakrishnan on 12-Nov-10 06:53 AM
Hi if this is in visual c# then then look at the following as a route to your solution:

Set the CheckedListBox CheckOnClick property to true and thencode the following for SelectedIndexChanged:
private void MyCheckBox_SelectedIndexChanged(object sender, EventArgs e)//single selection function
{
  int thisIndex = MyCheckBox.SelectedIndex;
 
  foreach (int checkedIndex in MyCheckBox.CheckedIndices)
  {
    if (checkedIndex != thisIndex)
      MyCheckBox.SetItemChecked(checkedIndex, false);
  }
}