Hi All

Wonder if anyone can help. (Code and example output at the bottom)

I have a datagrid displaying 5 columns of data. Additionally I have an
indeterminate number of columns to add as checkboxes (Could be 0 to 15
columns). This is done dynamically in the OnItemDataBound event.

This part all appears to work.

My problem is however, when I check (or uncheck) one of these
checkboxes every checkbox in the datagrid that is checked appears to
be processed in order for every row in the datagrid.

This is not what I need as I need to act upon the event of the control
that has been changed only.

1. Is this the best method of doing what I am trying to achieve.
2. If so how do I solve my problem.
3. If this is not the best method then can anyone advise on how I
should be doing this.

Any help offered will be most gratefully received.

Many thanks in advance

Regards

Iain


// ************************************************************
// * This is the sample output of the code as it is now.
// ************************************************************

If we take 4 columns

Eng     Man Eng Prod       IT
 X                                X
 X           X
 X                        X
              X                   X


The produced the display

Checking engCheckBox
Checking itCheckBox
Checking engCheckBox
Checking manengCheckBox
Checking engCheckBox
Checking prodCheckBox
Checking manengCheckBox
Checking itCheckBox


    //
*****************************************************************************************
    // *   Code in use : flubalub is a ASP:Label
    //
*****************************************************************************************
    protected void engCheckBox_CheckedChanged (object sender,
EventArgs e)
      {
      flubalub.Text = flubalub.Text + "<br />Checking engCheckBox ";
      }

    protected void manengCheckBox_CheckedChanged (object sender,
EventArgs e)
      {
      flubalub.Text = flubalub.Text + "<br />Checking manengCheckBox";
      }

    protected void prodCheckBox_CheckedChanged (object sender,
EventArgs e)
      {
      flubalub.Text = flubalub.Text + "<br />Checking prodCheckBox";
      }

    protected void itCheckBox_CheckedChanged (object sender, EventArgs
e)
      {
      flubalub.Text = flubalub.Text + "<br />Checking itCheckBox";
      }

    protected void removeButton_Click (object sender, EventArgs e)
      {
      flubalub.Text = flubalub.Text + "<br />Pressed removeButton";
      }

    public void OnItemDataBound (object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
      {
      OleDbConnection conLine = new
OleDbConnection("provider=IBMDA400; Data Source=XXX.XXX.XXX.XXX;
                         User Id=XXXXXXXX; password=XXXXXXXXX; Force
Translate = 37");
      OleDbCommand cmdLine = new OleDbCommand();

      if (e.Item.ItemType == ListItemType.Header)
        {
        }

      if (e.Item.ItemType == ListItemType.Item ||
          e.Item.ItemType == ListItemType.AlternatingItem)
        {
        CheckBox engCheckBox = new CheckBox();
        engCheckBox.ID = "engCheckBox";
        engCheckBox.AutoPostBack = true;
        engCheckBox.CheckedChanged += new
EventHandler(engCheckBox_CheckedChanged);
        e.Item.Cells[5].Controls.Add(engCheckBox);

        CheckBox manengCheckBox = new CheckBox();
        manengCheckBox.ID = "manengCheckBox";
        manengCheckBox.AutoPostBack = true;
        manengCheckBox.CheckedChanged += new
EventHandler(manengCheckBox_CheckedChanged);
        e.Item.Cells[6].Controls.Add(manengCheckBox);

        CheckBox prodCheckBox = new CheckBox();
        prodCheckBox.ID = "prodCheckBox";
        prodCheckBox.AutoPostBack = true;
        prodCheckBox.CheckedChanged += new
EventHandler(prodCheckBox_CheckedChanged);
        e.Item.Cells[7].Controls.Add(prodCheckBox);

        CheckBox itCheckBox = new CheckBox();
        itCheckBox.ID = "itCheckBox";
        itCheckBox.AutoPostBack = true;
        itCheckBox.CheckedChanged += new
EventHandler(itCheckBox_CheckedChanged);
        e.Item.Cells[8].Controls.Add(itCheckBox);

        Button removeButton = new Button();
        removeButton.ID = "removeButton";
        removeButton.Click += new EventHandler(removeButton_Click);
        e.Item.Cells[9].Controls.Add(removeButton);
        }

      if (e.Item.ItemType == ListItemType.Footer)
        {
        }
      }

Reply via email to