Использование данных для установки свойств GridView - PullRequest
0 голосов
/ 04 февраля 2009

Мне нужно установить для свойства «ReadOnly» объекта BoundField в GridView значение битового поля в наборе записей, которое отображается тем же GridView.

Мне известно, что я могу достичь этого в коде, но мне было интересно, возможно ли сделать это декларативно внутри свойства с использованием фрагмента <%%>?

Приветствия

Джейми

Ответы [ 3 ]

1 голос
/ 04 февраля 2009

Да, вы можете сделать это. Создайте TemplatedField и в операторе связывания используйте либо

<%# ((Employee)Container.DataItem).IsApproved ? "yes" : "no" %>

или вы можете использовать метод из кода

<%# FormatBool(((Employee)Container.DataItem).IsApproved) %>

где FormatBool - это свойство в вашем коде

protected string FormatBool(bool value)
{
   if (value)
      return "yes";
   return "no";
}
0 голосов
/ 05 февраля 2009

Мне не удалось найти способ манипулирования свойствами BoundField или TemplateField, декларативно основанный на данных DetailView.

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

Мое решение в коде было следующим:

    protected void DetailsView1_DataBound(object sender, EventArgs e)
    {
        DetailsView dv = (DetailsView)sender;

        if (dv.DataItemCount > 0)
        {
            DataRowView data = (DataRowView)dv.DataItem;
            bool isFixed = (bool)data["IsFixed"];

            if (isFixed)
            {
                dv.Rows[2].Enabled = false;
                dv.Rows[6].Enabled = false;
            }
        }
    }

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

Спасибо за помощь!

0 голосов
/ 04 февраля 2009

Если вам нужно привязать к свойствам, я бы использовал TemplateField, а затем установил там поведение. Это только в том случае, если вы не можете использовать код, в противном случае это ваш лучший выбор.

Я не думаю, что есть способ связать детали BoundColumn напрямую.

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