I'm adding a column to a gridview dynamically... it is a column of checkboxes - users check them to determine which row they want to print. I would like to be able to get the reference to a cell without using the numerical index:
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (e.Row.Cells[4].Controls.Count == 0)
            {
                CheckBox cbPrint = new CheckBox();
       开发者_开发百科         cbPrint.ID = "chkPrint";
                cbPrint.Checked = false;
                e.Row.Cells[4].Controls.Add(cbPrint); <--- this line
            }
        }
I would like to be able to use "Print" as in e.Row.Cells["Print"] like you can with columns in a DataSet - like: ds.Tables[0].Rows[3]["Print"], where print specifies the column. I would like to be able to do this because the print column may not be in the same place in every GridView and using a number index may not work all the time. Is there a way to get the cell using a string column reference??
This is what I figured out... I wrote a little function to get the index of the column based on the header text.
        GridView gv = (GridView)sender //inside OnRowDataBound
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (e.Row.Cells[GetIndex(gv, "Print")].Controls.Count == 0)
            {
                CheckBox cbPrint = new CheckBox();
                cbPrint.ID = "chkPrint";
                cbPrint.Checked = false;
                e.Row.Cells[GetIndex(gv, "Print")].Controls.Add(cbPrint);
            }
        }
The GetIndex method:
       public static int GetIndex(GridView gv, string columnText)
       {
           for (int i = 0; i < gv.Columns.Count; i++)
               if (gv.Columns[i].HeaderText == columnText)
                   return i;
           return -1;
       }
If the column with that header text is there, then it will return the index. If not, then it will return -1 and you'll get an error... so some error handling is needed here if you don't know if the column is going to be there or not.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论