ColdFusion имеет ответ на Основные Страницы ASP.NET?

item.MouseDoubleClick + = TreeViewItem_MouseDoubleClick; // Вот проблема

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

Попробуйте вместо этого:

// Adding new client to TreeView
TreeViewItem item = new TreeViewItem();
item.Header = entry.Key;
foreach (var date in entry.Value.ToArray())
{
    var child = new TreeViewItem();
    child.Header = date;
    child.MouseDoubleClick += TreeViewItem_MouseDoubleClick; // Only subscribe to the child
    item.Items.Add(child);
}
try
{
    Arbol_Clientes.Items.Add(item);
}
catch (Exception error)
{
    Console.WriteLine("ERROR: " + error.ToString());
}
7
задан Peter Boughton 2 April 2009 в 21:38
поделиться

4 ответа

Существует огромное количество способов сделать это с ColdFusion.


Application.cfc выполняется по каждому запросу и имеет два метода (onRequestStartи onRequestEnd) это может использоваться, чтобы предварительно ожидать/добавлять содержание к основному сценарию на странице.

Также стоящий замечания, возможно расшириться/наследовать Ваш Application.cfc, допуская более сложный набор событий RequestStart/End. Больше деталей здесь и здесь.


Пользовательские Теги позволяют Вам создавать тег, что можно перенести каждый шаблон для применения расположения/и т.д. Это также позволяет атрибутам/и т.д. определять общий но изменяющийся текст.

Например:

<cf_page PageTitle="My Page">
    [main page content]
</cf_page>

И в пользовательском теге (page.cfm) Вы имейте:

<cfif ThisTag.ExecutionMode EQ 'start'>
    <cfparam name="Attributes.PageTitle" default=""/>
    <cfcontent reset/><cfoutput><!DOCTYPE html>
    <html>
    <head>
        <title>My Website - #Attributes.PageTitle</title>
        [styles and scripts and stuff]
    </head>
    <body>
        <div id="heading">
            <img src="my_website_logo.png" alt="My Website"/>
        </div>
        <ul id="mainmenu" class="nav">
            [menu]
        </ul>
        <h1>#Attribute.PageTitle#</h1>
    </cfoutput>
<cfelse>
    <cfoutput>
        <div id="footer">
            [footer]
        </div>
    </body></html></cfoutput>
</cfif>

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


Henry уже упомянул Платформы MVC, но Вы не должны делать MVC для использования функциональности шаблонной обработки/расположения.

Коробка с плавкими предохранителями может сделать MVC, но это не требует, чтобы Вы сделали так, и ContentVariables eitherway FB являются хорошим инструментом для реализации модульного содержания с - если Ваш ведущий разработчик не может выровнять по ширине свою неприязнь к Коробке с плавкими предохранителями (и предложить альтернативу, которая соответствует Вашему проекту лучше!) затем нет абсолютно никакой причины не пойти для него - это - сформировавшаяся и известная платформа, простая в использовании, много разработчиков, и так далее.

Однако, если Коробка с плавкими предохранителями действительно не является опцией, смотрите на список Charlie Arehart платформ - что страница в целом является огромным списком инструментов, которые стоит посмотреть на.


Так или иначе это должно дать Вам достаточно вещей рассмотреть на данный момент...

12
ответ дан 6 December 2019 в 12:54
поделиться

Разработчики ColdFusion начали использовать пользовательский тег, названный cf_bodycontent в конце 90-х, чтобы избежать необходимости включать отдельный заголовок и файлы нижнего колонтитула. Это было за шесть или семь лет до Основных Страниц ASP.NET.;-)

Теперь существует собственный тег, который делает то же самое: cfsavecontent. Вот сущность того, как люди используют cfsavecontent в шаблонах.

   <!--- index.cfm --->
   <cfsavecontent variable="content">
      <cfinclude template="#url.action#.cfm">
   </cfsavecontent> 

   <cfinclude template="template.cfm">

   <!--- template.cfm --->
   <cfparam name="title" default="Welcome">
   <html>
      <head><cfoutput>#title#</cfoutput></head>
      <body>
         ... header, menu, sidebar, whatever ...
         <cfoutput>#content#</cfoutput>
         ... right column, footer ...
      </body>
   </html>

   <!--- foo.cfm --->
   <cfset title="Welcome to Foo">
   Hello World! I'm the page at index.cfm?action=foo

   <!--- bar.cfm --->
   <cfset title="Welcome to Bar">
   Hello World! I'm the page at index.cfm?action=bar

Если Вы хотите, помещает шаблон в шаблоне, просто добавляют другой cfsavecontent.

   <!--- index.cfm --->
   <cfsavecontent variable="content">
      <cfinclude template="#url.action#.cfm">
   </cfsavecontent> 

   <cfsavecontent variable="content">
      <cfinclude template="internal_template.cfm">
   </cfsavecontent>

   <cfsavecontent variable="content">
      <cfinclude template="master_template.cfm">
   </cfsavecontent>         

   <cfoutput>#content#</cfoutput>         

Вы могли осуществить рефакторинг для включения дублирования.

   <!--- index.cfm --->
   <cfsavecontent variable="content">
       <cfinclude template="#url.action#.cfm">
   </cfsavecontent> 

   <cfparam name="templates" default="internal,master">

   <cfloop list="#templates#" index="t">
       <cfsavecontent variable="content">
           <cfinclude template="#t#_template.cfm">
       </cfsavecontent>
   </cfloop> 

   <cfoutput>#content#</cfoutput>  

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

  <!--- internal_template.cfm --->
  <cfset templates = listAppend("master", templates)>  

  ...
  <cfoutput>#content#</cfoutput>
  ...


  <!--- index.cfm --->
  <cfsavecontent variable="content">
      <cfinclude template="#url.action#.cfm">
  </cfsavecontent> 

  <cfparam name="templates" default="internal">

  <cfloop condition="listlen(templates) gt 0">
      <cfset t = listFirst(templates)>
      <cfset templates = listRest(templates)>
      <cfsavecontent variable="content">
          <cfinclude template="#t#_template.cfm">
      </cfsavecontent>
  </cfloop> 

  <cfoutput>#content#</cfoutput> 

И таким образом у Вас есть StackBox, платформа ColdFusion, изобретенная на StackOverflow.:-)

3
ответ дан 6 December 2019 в 12:54
поделиться

Можно попробовать одну из платформ MVC с шаблонной поддержкой (почти у всех есть он).

ColdBox, Образцовое Связующее звено, Mach-II, коробка с плавкими предохранителями...

Эта страница Galleon Forum Ports Comparisons выделяется, как каждая платформа обрабатывает Шаблоны...

1
ответ дан 6 December 2019 в 12:54
поделиться

выезд CFINCLUDE

0
ответ дан 6 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: