asp.net GridView заменяет флажки Да / Нет в Динамическом GridView - PullRequest
2 голосов
/ 18 апреля 2011

У меня есть сетка, которая отображает результаты пользовательского запроса.Число столбцов неизвестно, и неизвестно, содержит ли привязываемый DataTable логический столбец.Название столбцов, которые будут содержать логическое значение, также неизвестно.

Не зная заранее этой информации, есть ли возможность заменить флажки простым Да / Нет?

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

1 Ответ

0 голосов
/ 09 мая 2011

Я смог найти решение вскоре после того, как опубликовал вопрос.В итоге я сделал следующее:

  • Создайте клон DataTable с каждым столбцом типа string,
  • Выполните итерацию по каждому массиву элементов (объект []), чтобы найти «True»и «False» и замените на «Yes» и «No» соответственно
  • Создайте новый DataRow, установите его свойство ItemArray в новый массив объектов и добавьте новый DataRow в новый DataTable.

Вот код того, как это было сделано:

        DataTable Clone = ResultsTable.Clone();
        for (int i = 0; i < Clone.Columns.Count; i++)
        {
            Clone.Columns[i].DataType = typeof(string);
        }

        foreach (DataRow row in ResultsTable.Rows)
        {
            DataRow r = null;
            object[] ItemArray = row.ItemArray;
            for (int i = 0; i< ItemArray.Length; i++)
            {
                if (ItemArray[i].ToString() == "True")   ItemArray[i] = "Yes";
                if (ItemArray[i].ToString() == "False")  ItemArray[i] = "No";
            }

            r = Clone.NewRow();
            r.ItemArray = ItemArray;
            Clone.Rows.Add(r);
        }

Эта концепция должна быть применима и к аналогичным текстовым преобразованиям DataTable.

...