2013-08-02 5 views
0

Я очень часто использую MultiViews, и я вижу странную проблему, с которой я никогда не сталкивался. Только элементы управления в первом индексе Multiview или вне его вызовут запуск связанных с ними обработчиков событий. MultiView находится внутри UserControl.Eventhandlers в MultiView

Я могу изменить индекс MultiView, но любые элементы управления в любом индексе, отличном от 0, не будут запускать обработчики событий. Есть ли какая-то разумная причина для этого или для того, чтобы я мог его отладить?

Мой MultiView объявлен

<asp:Button ID="btnPostTopicAlsoWorking" runat="server" Text="Post Topic" CssClass="button" ValidationGroup="post" OnClick="btnPostTopic_Click"/> 
<asp:MultiView runat="server" ID="mltMain" ActiveViewIndex="0" OnActiveViewChanged="viw_Changed"> 
    <asp:View runat="server" ID="viwCategories"> 
     ...this works 
     <asp:Button ID="btnPostTopic" runat="server" Text="Post Topic" CssClass="button" ValidationGroup="post" OnClick="btnPostTopic_Click"/> 
    </asp:View> 
    <asp:View runat="server" ID="viwCategorySingle"> 
     ...this does not work 
     <asp:Button ID="btnPostTopicBroken" runat="server" Text="Post Topic" CssClass="button" ValidationGroup="post" OnClick="btnPostTopic_Click"/> 
+0

Это означает, что все кнопки должны использовать один и тот же обработчик событий? – NoLifeKing

+0

Нет, они на самом деле все разные, я изменил их на то же самое для отладки. – Echilon

+0

При отладке также проверьте, что такое «ActiveViewIndex» для вашего мультивиза, чтобы узнать, является ли он правильным. – NoLifeKing

ответ

0

Это был кошмар, чтобы выследить. UC встроен в страницу Umbraco, а UC добавляется с макросом. Если я создаю MasterPage и включить макрос так:

<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %> 

<asp:Content ID="Content2" ContentPlaceHolderID="cp_content" runat="server"> 
    <umbraco:Item ID="Item1" runat="server" field="bodyText" /> 
</asp:Content> 

Я могу создать страницу Umbraco, вставить макрос с редактором, и он будет отображаться и быть наполовину функционален. Чтобы заставить его работать «как ожидалось», мне нужно было встроить макрос непосредственно в MasterPage:

<asp:Content ID="Content2" ContentPlaceHolderID="cp_content" runat="server"> 
    <umbraco:Macro ID="Macro1" runat="server" Alias="forumCategoryFrontEnd"/> 
</asp:Content>