2015-06-12 3 views
1

Я не знаю, как обновить мою главную страницу (только), нажав кнопку мыши, находящуюся в части ContentPlaceHolder.Обновить главную страницу только со страницы содержания

Вот изображение, объясняющее ситуацию (я размыл бесполезную часть).

Что нужно знать:

Синий: Masterpage

Зеленый: Часть MasterPage Я хочу, чтобы обновить

Красный: ContentPlaceHolder (другой страницы ASPX) в MasterPage

Я хочу для обновления зеленой части MasterPage с событием Click кнопки на красной части.

Я пробовал панель обновления, окружающую зеленую часть, а триггер - событие Click кнопки Red part, но поскольку это не та же самая страница aspx, она терпит неудачу.

любые идеи?

ProblemRefresh

EDIT: Мой код

Master страница C# часть:

public void UpdateComment() 
     { 
      this.UPDP_Obs.Update(); 
     } 

Master страница Asp часть:

<asp:UpdatePanel ID="UPDP_Obs" runat="server" 
          UpdateMode="Conditional"> 
       <ContentTemplate> 

       <asp:Table CssClass="center" ID="TBL_ObsLA" runat="server"> 
       <asp:TableRow runat="server"> 
        <asp:TableCell> 
         Dernier commentaire Ligne Cal-1 A: 
        </asp:TableCell> 
       </asp:TableRow> 
       <asp:TableRow runat="server"> 
        <asp:TableCell> 
        <asp:Label ID="LBL_DateLA" runat="server" Text=""></asp:Label> <br /> <br /> 
        <asp:Label ID="LBL_ObsLA" runat="server" Text=""></asp:Label> 
        </asp:TableCell> 
       </asp:TableRow> 

      </ContentTemplate> 
</asp:UpdatePanel> 

ContentPlaceHolder C# часть:

//Some Code to Update the comment in Sql to a Database (works) 


MasterLavage MasterP = (MasterLavage)this.Master; 
MasterP.UpdateComment(); 

Я проследил с помощью отладчика, компиляция проходит через метод UpdateComment, но Updatepanel не обновляется (или, по крайней мере, метка isnt). Когда я обновляю полную страницу (F5), ярлык обновляется с новым комментарием

Любые идеи?

+1

Я знаю, что это, наверное, последнее, что вы хотите услышать, но я бы оторвался от строгой модели WebForms и использовал JavaScript для выполнения запроса Ajax, чтобы вытащить данные, а затем обновить поля в JavaScript. UpdatePanels - это 2008. ;-) –

+0

Это может быть полезно ... http://stackoverflow.com/questions/6035730/asp-net-how-to-call-a-master-page-event-handler-from- content-page-event-handle – Turnip

ответ

0

Попробуйте использовать (Его predocode, так как вы не указали язык)

В ContentPlaceHolder сценарии языка сервера (например, .vb .cs файлы)

this.parent.method_that_updates(); //you can check if method exists before invoking, just to be safe; or wrap this in a try catch block 

В MasterPage

public function method_that_updates() { 
    this.my_panel.refresh(); //or whatever does the refresh 
    //notice I made it public 
} 
+0

Здравствуйте, я обновил свой вопрос и поставил несколько кодов, если бы вы могли взглянуть на него, пожалуйста :), спасибо за вашу идею –

+0

'this.UPDP_Obs.Update();' Нет, это как эта метка обновляется, если ее нужно извлечь из БД, вам нужно сделать это, используя '// Some Code to Also Select from the database'. Добавьте, как этот 'this.UPDP_Obs' изначально собирает свою информацию из БД, так же должен быть в том месте, где' this.UPDP_Obs.Update(); 'в настоящее время –

0

Сделайте владельца UpdateMode=Conditional и обновите его вручную со страницы. Вы можете предоставить общедоступный метод в своем хозяине, который вы можете вызвать со своей страницы. Этот метод принимает информацию, что вы хотите изменить и звонки Update:

// in your Masterpage 
public void UpdateComment(string comment) 
{ 
    this.LblComment.Text = comment; // as label in the green part of the master 
    this.CommentUpdatePanel.Update(); // the UpdatePanel around this control 
} 

Вы должны бросить страницы Master свойство правильного типа, чтобы увидеть UpdateComment.

+0

Здравствуйте, я просто попробовал ваше решение, и он не работает, я думаю, что идея хорошая, и я могу использовать ее неправильно, я обновляю свой вопрос на тему с кодом, вы можете взглянуть? –

+0

@charlesgodin: я не вижу, где вы меняете комментарий в своем коде. –

+0

Под рисунком я добавил свой код –

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