Получение ссылки на столбец ячейки Gridview по строке вместо индекса - PullRequest
0 голосов
/ 08 апреля 2011

Я динамически добавляю столбец в сетку: это столбец флажков - пользователи проверяют их, чтобы определить, какую строку они хотят напечатать.Я хотел бы иметь возможность получить ссылку на ячейку без использования числового индекса:

        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
            }
        }

Я хотел бы иметь возможность использовать «Печать», как в e.Row.Cells [«Печать»] как вы можете со столбцами в DataSet - как: ds.Tables [0] .Rows [3] ["Print"], где print указывает столбец.Я хотел бы иметь возможность сделать это, потому что столбец печати может быть не в одном и том же месте в каждом GridView и использование индекса номера может работать не все время.Есть ли способ получить ячейку, используя ссылку на столбец строки ??

1 Ответ

0 голосов
/ 14 апреля 2011

Это то, что я понял ... Я написал небольшую функцию для получения индекса столбца на основе текста заголовка.

        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);
            }
        }

Метод GetIndex:

       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;
       }

Если столбец с таким текстом заголовка есть, он вернет индекс. Если нет, то он вернет -1, и вы получите ошибку ... поэтому здесь нужна некоторая обработка ошибок, если вы не знаете, будет ли столбец или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...