Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Столкнулся с такой проблемой, что из файла с кодом *.ascx.cs не видно контролы в разделе HeaderTemplate объекта Wizard. К примеру: <asp:Wizard runat="server" ID="wzrdTest"> <HeaderTemplate> <asp:Label ID="lblHeader" runat="server" /> </HeaderTemplate> <WizardSteps> <asp:WizardStep runat="server" Title="first"> ... </asp:WizardStep> </WizardSteps> <asp:/Wizard> Идея в том, чтобы в загаловке размещать некий контрол общий для всех шагов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2006, 17:28 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
У тебя же там текста нет, вот и не видно. Напиши <asp:Label ID="lblHeader" runat="server" text="Обязательный текст"/> У меня все в порядке.<P>__________________________________</P> <P>Я ни от кого, ни от чего не завишу.</P> <P>Встань, делай как я, ни от кого не завись.</P> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2006, 17:36 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
дело не в тексте. У меня там вообще не объект Label находиться, а другой ascx-контрол. Вот как раз дело в том как к нему обращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2006, 17:57 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
А через wzrdTest.Controls?-- Гайдар Магдануров E-Mail | Блог | Сайт Difficult I do now, impossible will take a while... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2006, 18:26 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Там многоступенчатая вложенность. System.Web.UI.WebControls.Wizard+WizardChildTable System.Web.UI.WebControls.TableRow System.Web.UI.WebControls.TableCell System.Web.UI.WebControls.WizardDefaultInnerTable System.Web.UI.WebControls.TableRow System.Web.UI.WebControls.Wizard+InternalTableCell System.Web.UI.LiteralControl System.Web.UI.WebControls.Label__________________________________ Я ни от кого, ни от чего не завишу. Встань, делай как я, ни от кого не завись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2006, 18:50 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Голубчик был пойман по этому тернистому пути. WzrdTest.Controls[0].Controls[0].Controls[1].Controls[0].Controls[0].Controls[0].Controls[1]__________________________________ Я ни от кого, ни от чего не завишу. Встань, делай как я, ни от кого не завись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2006, 19:19 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Ужас! Не так надо, а вот так:Control ctrl = WzrdTest.Controls.Find("имя контрола", true); true говорит о том. что искать в дочерних. Так можно и от самой формы или страницы искать.-- Гайдар Магдануров E-Mail | Блог | Сайт Difficult I do now, impossible will take a while... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 00:02 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Что-то нету такой функции.__________________________________ Я ни от кого, ни от чего не завишу. Встань, делай как я, ни от кого не завись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 00:20 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
2gaidar: Я тоже не нашёл в System.Web.UI.ControlCollection метода Find. Вообще у класса Wizard'а, так как он унаследован от Control'а есть метод FindControl. Но этот метод не находит мой контрол. Вообще в MSDN описано два вида этого метода, можно так же помимо ID указывать ещё и уровень вложенности на котором искать, но данный вариант только в документации. 2Жасмин: Спасибо твой метод сработал. Но, конечно же, хотелось бы не настолько конкретный поиск, а более универсальный :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 10:38 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
public Control FindAnyControl(WebControl control, string name) { foreach (Control c in control.Controls) { if (c.ID == name) return c; foreach (Control c1 in c.Controls) { if (c1.ID == name) return c1; foreach (Control c2 in c1.Controls) { if (c2.ID == name) return c2; foreach (Control c3 in c2.Controls) { if (c3.ID == name) return c3; foreach (Control c4 in c3.Controls) { if (c4.ID == name) return c4; foreach (Control c5 in c4.Controls) { if (c5.ID == name) return c5; foreach (Control c6 in c5.Controls) { if (c6.ID == name) return c6; } } } } } } } return null; } public Control FindAnyControlRecursive(WebControl control, string name, int RecursionLevel) { foreach (Control c in control.Controls) { if (c.ID == name) return c; if (RecursionLevel > 0) return FindAnyControlRecursive(c, name, RecursionLevel - 1); else return null; } } __________________________________ Я ни от кого, ни от чего не завишу. Встань, делай как я, ни от кого не завись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 11:00 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
public Control FindAnyControl(WebControl control, string name) { foreach (Control c in control.Controls) { if (c.ID == name) return c; foreach (Control c1 in c.Controls) { if (c1.ID == name) return c1; foreach (Control c2 in c1.Controls) { if (c2.ID == name) return c2; foreach (Control c3 in c2.Controls) { if (c3.ID == name) return c3; foreach (Control c4 in c3.Controls) { if (c4.ID == name) return c4; foreach (Control c5 in c4.Controls) { if (c5.ID == name) return c5; foreach (Control c6 in c5.Controls) { if (c6.ID == name) return c6; } } } } } } } return null; } Это раз. Ну понятно, будет критика, что все равно может не найти и притом слишком много вложенных циклов. Тады __________________________________ Я ни от кого, ни от чего не завишу. Встань, делай как я, ни от кого не завись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 11:06 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Жасмин спасибо. Но мне кажется вот такой способ компактнее и универсальнее. :) 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 null; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 11:09 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Извините за offtop. 2Жасмин: Как ты в сообщение код вставляешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 11:17 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Кнопочки с 0 и 1.__________________________________ Я ни от кого, ни от чего не завишу. Встань, делай как я, ни от кого не завись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 11:24 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Не понял. А поподробнее можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2006, 11:54 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Возник ещё один вопрос по Wizard'у и по шаблонам, на этот раз по SideBarTemplate. Вообще мне интересно в какой момент происходит генерация элементов SideBar по шаблону? А вопрос вообщем-то вот в чём. Есть шаблон: <code> <SideBarTemplate> <div> <table cellSpacing="0" cellPadding="2" border="0"> <tr> <td> <asp:DataList ID="SideBarList" runat="server" ItemStyle-CssClass="Normal"> <ItemTemplate> <asp:LinkButton ID="SideBarButton" runat="server" Enabled="false" /> </ItemTemplate> </asp:DataList> </td> </tr> </table> </div> </SideBarTemplate> </code> В данном шаблоне используются LinkButton, представляющие собой ссылки на соответствующие шаги. Мне нужно программно сделать ссылкой только пройденые и текущий шаги, а остальные в виде постого текста. Вроде всё просто в Page_Load вставляешь код, который из истории пройдённых шагов (GetHistory()), берёт шаги и соответствующие им ссылки в SideBar'е делает Enabled=true. Но не работает. Если я в шаблоне для LinkButton указываю атрибут Enabled=false, то все ссылки становяться в режиме read only, если в true - соответственно в виде ссылок, если не указываю атрибут, так же как Enabled=true. Задумался по поводу времени выполнения этого кода, пытался вставлять в разные места при разных значениях атрибута Enabled (в Page_Load, в событие PreRender, даже вставлял в событие смены шага). Никакого результата, программно показывает что сменил, а фактически нет. Может кто может подсказать? Буду признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2006, 12:01 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
Вопрос снимается. Если кому-то интересно реализовал следующим образом: Файл *.ascx <code> <SideBarTemplate> <div> <table cellSpacing="0" cellPadding="2" border="0"> <tr> <td> <asp:DataList ID="SideBarList" runat="server" ItemStyle-CssClass="Normal"> <ItemTemplate> <asp:LinkButton ID="SideBarButton" runat="server" Enabled="<%#IsStepLinkEnabled(Container.DataItem) %>" /> </ItemTemplate> </asp:DataList> </td> </tr> </table> </div> </SideBarTemplate> </code> Файл *.ascx.cs <code> private bool IsStepLinkEnabled(object dataItem) { WizardStep wizardStep = (WizardStep)dataItem; bool enabled = false; if (wzrdTest.ActiveStep.ID == wizardStep.ID) enabled = false; else { foreach (WizardStepBase step in wzrdTest.GetHistory()) { if (step.ID == wizardStep.ID) { enabled = true; break; } } } return enabled; } </code> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 12:45 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
private bool IsStepLinkEnabled(object dataItem){ WizardStep wizardStep = (WizardStep)dataItem; bool enabled = false; if (wzrdTest.ActiveStep.ID == wizardStep.ID) enabled = false; else { foreach (WizardStepBase step in wzrdTest.GetHistory()) { if (step.ID == wizardStep.ID) { enabled = true; break; } } } return enabled;} А кнопочки тут, на форме, где пишешь, под смайликом.__________________________________ Я ни от кого, ни от чего не завишу. Встань, делай как я, ни от кого не завись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 12:53 |
|
||
|
Класс Wizard в VS2005
|
|||
|---|---|---|---|
|
#18+
2Жасмин: У меня нет ни смайликов ни кнопочек. Ни под Firefox'ом, ни под IE. Но всё равно спасибо за ответ. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 12:59 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33859966&tid=1391493]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
92ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 419ms |

| 0 / 0 |
