Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Элемент CheckBox в HeaderTemplate
|
|||
|---|---|---|---|
|
#18+
Исходные данные: есть DataGrid, у которого Header задан с помощью шаблона, в который включён CheckBox (функция выделитть всё в DataGrid). На событие OnCheckedChange стоит обработчик - он позволяет реагировать и менять всё как нужно, т.е. в обработчике я вижу этот CheckBox и могу следить за тем, сняли там флажок или поставили его. Вопрос: а как просто из произвольного места обратится к данному CheckBox, расположенном в Headere DataGridа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 16:40 |
|
||
|
Элемент CheckBox в HeaderTemplate
|
|||
|---|---|---|---|
|
#18+
Перебрать Items грида, найти хидер и в нем найти чекбокс Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2006, 23:08 |
|
||
|
Элемент CheckBox в HeaderTemplate
|
|||
|---|---|---|---|
|
#18+
Перебрать Items грида, найти хидер и в нем найти чекбокс Перебирал - там нету его, айтемс - это только внутренность DataGrid. У меня просто в Items тоже чекбоксы, так вот я их перебираю периодически, и чтобы я там не менял - меняется только в самом датагриде (то что описано в ItemsTemplate). Так что такой способ не пойдёт - есть другой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 09:44 |
|
||
|
Элемент CheckBox в HeaderTemplate
|
|||
|---|---|---|---|
|
#18+
foreach(DataGridItem item in DataGrid1.Items) if(item.ItemType == ListItemType.Header) //вот тут ищешь свой чекбокс Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 12:01 |
|
||
|
Элемент CheckBox в HeaderTemplate
|
|||
|---|---|---|---|
|
#18+
foreach(DataGridItem item in DataGrid1.Items) if(item.ItemType == ListItemType.Header) //вот тут ищешь свой чекбокс Огромное спасибо, но я уже так пробовал. Я в дебаге посмотрел чего там лежит в коллекции DataGrid1.Items - там лежат только item с item.ItemType=Item и item.ItemType=AlternatingItem, Header - там нету!... Никак не найду его... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 12:55 |
|
||
|
Элемент CheckBox в HeaderTemplate
|
|||
|---|---|---|---|
|
#18+
Вообщем решил вопрос так, если вдруг кому пригодится: Получить из произвольного места доступ к checkbox в Header я так и не смог, зато выкрутился вот так: Так описан сам HeaderTemplate: <HeaderTemplate> <asp:CheckBox ID="SelectAllBox" AutoPostBack="true" OnCheckedChanged="SelectAllBoxChange" runat="server" /> </HeaderTemplate> При его изменении, вызывается процедура обработки SelectAllBoxChange, а там бы запоминаем в Session собственно нужный нам checkbox: public void SelectAllBoxChange(object s, EventArgs e) { CheckBox selected = (CheckBox)s; //... Session["All"] = selected; } А потом когда нужно всегда можно посмотреть и изменить его состояние: CheckBox selectAll = (CheckBox)Session["All"]; Это конечно полный глум, зато работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 13:12 |
|
||
|
Элемент CheckBox в HeaderTemplate
|
|||
|---|---|---|---|
|
#18+
А зачем знать состояние этого CheckBox? У меня он был клиентский (<input type="checkbox">). Да и его состояние мне вовсе не нужно было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 16:46 |
|
||
|
Элемент CheckBox в HeaderTemplate
|
|||
|---|---|---|---|
|
#18+
Перебрать Items грида, найти хидер и в нем найти чекбокс Перебирал - там нету его, айтемс - это только внутренность DataGrid. У меня просто в Items тоже чекбоксы, так вот я их перебираю периодически, и чтобы я там не менял - меняется только в самом датагриде (то что описано в ItemsTemplate). Так что такой способ не пойдёт - есть другой? Мы тут с одним товарищем сообразили функцию, которая ищет контрол любого уровня вложенности. http://www.gotdotnet.ru/Forums/Web/346517.aspx Это моя public Control FindAnyControlRecursive(Control control, string name, int RecursionLevel) { foreach (Control c in control.Controls) { if (c.ID == name) return c; if (RecursionLevel > 0) { Control c1=FindAnyControlRecursive(c, name, RecursionLevel - 1); if(c1!=null) return c1; } } return null; } А это его private Control FindCtrl (Control control, string id) { Control retControl = null; foreach(Control ctrl in control.Controls) { if (ctrl.ID == id) return ctrl; if (ctrl.HasControls()) { retControl = FindCtrl(ctrl, id); if (retControl != null && retControl.ID == id) return retControl; } } return retControl; } __________________________________ Я ни от кого, ни от чего не завишу. Встань, делай как я, ни от кого не завись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2006, 18:03 |
|
||
|
|

start [/forum/topic.php?fid=18&gotonew=1&tid=1391333]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
138ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 460ms |

| 0 / 0 |
