Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# под Web, ASP.NET

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.56
serguei
0 / 0 / 0
Регистрация: 09.06.2008
Сообщений: 51
#1

Как прописть ItemTemplate y TemplateColumn в коде - C# ASP.NET

28.10.2008, 13:22. Просмотров 1114. Ответов 3
Метки нет (Все метки)

Уважаемые,
В моем web DataGrid есть TemplateColumn у которой в качестве ItemTemplate идет usercontrol представляющий собой Label. Хотелось бы чтобы Label.Text генерировался на лету и получал данные из DataSource родительского DataGrid. Если бы не нужно было бы генерить TemplateColumn в коде, то можно было бы просто написать:
HTML5
1
2
3
4
5
<ItemTemplate>
                  <asp:Label
                       Text='<%# DataBinder.Eval(Container.DataItem, 'Tax') %>'
                       runat='server'/>
</ItemTemplate>
но мне нужно в коде usercontrol заставить генериться Label.Text на лету. Облазил массу сайтов по ASP.NET, но там все похожее на приведенный html. Может кто знает как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2008, 13:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как прописть ItemTemplate y TemplateColumn в коде (C# ASP.NET):

Как в RunTime сделать невидимым TemplateColumn? - C# ASP.NET
Есть DataGrid которая представлена набором столбцов TemlateColumn. Как во время выполнения программы сделать один из столбцов невидимым....

Найти элемент управления в ListView.ItemTemplate - C# ASP.NET
Хелоу ворд. Кто нибудь знает как найти например CheckBoxList находящийся в ItemTemlate? Как к нему обратится?

Как привязаться из ItemTemplate к свойству DataContext - C# WPF
Возможно нубский вопрос, но поиск увы не помог. Например, DataContext котрола установлен на объект cо свойством string Header и...

Как отменить запуск анимации в Style.ItemTemplate - C# WPF
Здравствуйте. Стоит такая задача: создается ListBox на основании шаблона из ResourceDictionary: ...

Данные для ListView с заданным ItemTemplate с массива - Windows Phone
уважаемый krupa и все другие пользователи, я задавал вопрос там где спрашивал как сделать как сделать кастомные кнопочки и у меня возник...

Отображение ItemTemplate для выбранного значения ComboBox - C# WPF
Добрый день, очередной вопрос к Гуру! Опишу проблему с которой столкнулся на простом примере. Есть коллекция, заполненная...

3
hellraiser
18.12.2008, 10:38 #2
у меня таже проблема там вроде для таких целей есть метод TemplateColumn.ItemTemplate.InstantiateIn, но я немогу разобрать как с ним работать, при прямом занесении в процесе выполнения выдаеьтя ошибка, а делаю я это так

C#
1
2
3
4
5
6
TemplateColumn temp_column = new TemplateColumn();
Label data_field_label = new Label();
 
data_field_label.Text = i.ColumnName;
                
temp_column.ItemTemplate.InstantiateIn (data_field_label);
но как я уже писал чегото неработает, может ты как нибудь это уже решил, скажи плз.
serguei
0 / 0 / 0
Регистрация: 09.06.2008
Сообщений: 51
18.12.2008, 10:49  [ТС] #3
сначала создай такой класс:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace SupportSystem
{
    /// <summary>
    /// Summary description for CTemplateColumn.
    /// </summary>
    public class CTemplateColumn:ITemplate
    {
        private string colname;
 
        // Constructor
        public CTemplateColumn(string name)
        {
            colname = name;
        }
 
        public void InstantiateIn(Control container)
        {
            LiteralControl l = new LiteralControl();
            l.DataBinding += new EventHandler(this.onDataBinding);
            container.Controls.Add(l);
        }
 
        public void onDataBinding(object sender, EventArgs e)
        {
            LiteralControl l = (LiteralControl) sender;
            DataGridItem container = (DataGridItem) l.NamingContainer;
            l.Text = ((DataRowView)container.DataItem)[colname].ToString();
        }
    }
}
потом при создании колонки пропиши примерно так:

C#
1
2
3
4
5
6
7
// Set staff name column
TemplateColumn colStaffName = new TemplateColumn();
colStaffName.ItemTemplate = new CTemplateColumn('staffname');
colStaffName.EditItemTemplate = Page.LoadTemplate('StaffList.ascx');
colStaffName.HeaderText = 'Staff Name';
colStaffName.ItemStyle.Width = 130;
dgrContracts.Columns.Add(colStaffName);
где StaffList.ascx - это контрол который будет появлятся при редактировании. работает - проверено.
0
hellraiser
18.12.2008, 11:30 #4
Большое спасибо, все работает. Еще один вопрос, а как в этом template, обработать форматирование l, т.е. если у поля тип например DateTime, то применить какленибудь форматировани если другой то поступить иначе. Это возможно вообще или стоит просто написать еще один template и при инициализации применять тот или иной. Как лучше?
И еще если можно и нежалко пришлите еще мне исходник StaffList.ascx.
Мое мыло Sergey.Prudnikov@fumogilev.gov.by Заранее благодарен.
18.12.2008, 11:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2008, 11:30
Привет! Вот еще темы с ответами:

Проблема с шаблоном при использовании разных элементов (ItemTemplate и ComboBoxItem) - C# WPF
Делаю шаблон для ComboBox. Определяю ItemTemplate для иного отображения итемов: &lt;Setter Property=&quot;ItemTemplate&quot;&gt; &lt;Setter.Value&gt; ...

Найдите ошибку в коде и укажите потенциальные проблемы, которые содержатся в коде - C#
Дорогие программисты помогите с решением задачи по C#, не успеваю :( Найдите ошибку в коде и укажите потенциальные проблемы, которые...

Не могу найти в коде бесконечный цикл (Если таковой в коде имеется.) - Java
/** * Created by Drath on 04.08.14. */ var mygram = { words: , unfixed: {}, answerNum: -1, me: this, ...

Представить число в двоичном коде и в коде Грея - C++
Всем доброго вечера) у меня такая просьба, помогите написать программу по коду Грея, чтобы пользователь сам ввел число в диапозоне от -100...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru