2009-04-25 2 views
1

У меня возникают проблемы с комбинацией UpdatePanel и MultiView.Попытка установить вид внутри UpdatePanel в PageLoad

У меня есть UpdatePanel на моем верхнем уровне, внутри у меня есть куча кнопок с изображениями - их события щелчка задают представление в Multiview, и каждый вид имеет UpdatePanel внутри него с моей привязкой.

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

Когда я пытаюсь установить View из PageLoad - он говорит, что «объект не существует». Поэтому я решил, что попробую его в Page_LoadComplete, который отлично работает, но тогда мои кнопки изображения не работают, чтобы переключать представление, как это было изначально.

Что мне не хватает! Благодаря!

void Page_LoadComplete() 
    { 
     tabSelect= Request.QueryString["tab"]; 

      if (tabSelect.Contains("Community")) 
      { 
       MultiView1.SetActiveView(Community); 

       btnCommunity.ImageUrl = "images/tabCommunity_on.png"; 

      } 
    } 




<asp:ScriptManager id="ScriptManager1" runat="server"/> 
<asp:UpdatePanel id="UpdatePanel1" childrenastriggers="true" updatemode="Always" runat="server"> 
    <ContentTemplate> 
    <asp:ImageButton id="btnCommunity" onclick="" runat="server"> 

    <asp:MultiView ID="MultiView1" ActiveViewIndex="0" runat="server"> 
     <asp:View ID="Community" runat="server"> 
      <asp:UpdatePanel id="UpdatePanel1" childrenastriggers="true" updatemode="Always" runat="server"> 
      //data controls in here 
      </asp:UpdatePanel> 
     </asp:View> 
     <asp:View id="tabFriends" runat="server"> 
      <asp:UpdatePanel id="UpdatePanel2" childrenastriggers="true" updatemode="Always" runat="server"> 
      //data controls in here 
      </asp:UpdatePanel> 
     </asp:View> 
    </asp:MultiView> 
    </ContentTemplate> 
</asp:UpdatePanel> 

ответ

1

UPDATE: После анализа кода более подробно, я считаю, разобрался с проблемой.

я сделал следующие изменения в коде:

  1. Если строки запроса не передается, установите tabSelect пустую строку и, таким образом, избегая пустой ссылка на объект исключения на следующей строке.

  2. Задайте путь ImageUrl для включения ~ (для root).

Пожалуйста, попробуйте код ниже:

void Page_LoadComplete() 
{ 
    string tabSelect = Request.QueryString["tab"] ?? string.Empty; 

    if (tabSelect.Contains("Community")) 
    { 
     MultiView1.SetActiveView(Community); 
     btnCommunity.ImageUrl = "~/images/tabCommunity_on.png"; 
    } 
} 
+0

То же самое происходит и там, как при загрузке страницы - это говорит View я настройка нулевой. Но объект есть, я вижу его в отладчике - это просто нуль. – user53885

+0

Дайте мне знать, если мой обновленный пост делает трюк. –

 Смежные вопросы

  • Нет связанных вопросов^_^