字段名user在GridView中处于第几列 想得到在“第几列“

解决方案 »

  1.   

    GridView1.Columns[列索引].HeaderText;
      

  2.   

    想要的是通过字段得到第几列的索引,而不是得到HeaderText
    比如说user在GridView中是第几列而不是通过索引得到Text
      

  3.   

    http://topic.csdn.net/u/20071218/10/3cc90890-b5a2-4eb3-8221-ff3851ec3769.html
      

  4.   

    谁知道你的GridView是怎样设计的呢?
      

  5.   


    int columnIndex=-1;
    for(int i=0;i<GridView1.Columns.Count;i++)
        if(GridView1.Columns[i].HeaderText=="字段名")
        {
            columnIndex=i;
            break;
        }
    Response.Write("字段名"+"处于第"+columnIndex+"列。");
      

  6.   

    那需要遍历数据源取得,你的数据源是DataTable就遍历DataTable。
      

  7.   

    下面方法,只能在Gridview的BoundField进行操作,而在TemplateField模版中去找的话,就无能为力了,因TemplateField模版没有DataField属性。 
    代码 
     public int GetColumnIndex(GridView gridView, string fieldName)
            {
                int index = -1;
                for (int i = 0; i < gridView.Columns.Count; i++)
                {
                    DataControlField dataControlField = gridView.Columns[i];
                    BoundField boundField = dataControlField as BoundField;               
                    if (boundField != null && boundField.DataField == fieldName)
                        index =  i;
                }
                return index;
            }
    或者可以利用HeaderText与FieldName进行比较,返回列索引: 代码 
     public int GetColumnIndex(GridView gridview, string fieldName)
            {
                int index = -1;
                foreach (DataControlField dataControlField in gridview.Columns)
                {
                    if (dataControlField.HeaderText == fieldName)
                    {
                        index = gridview.Columns.IndexOf(dataControlField);
                    }
                }
                return index;
            }