2009-09-03 4 views
1

Я работаю в ASP.net с .Net Framework 2.0 и VS Team System 2008Asp.net Ajax с мастером страницы

У меня есть страница главной страницы и п количество страниц. На главной странице я поставил тег ScriptManager, и на странице содержимого у меня есть UpdatePanel. Но всякий раз, когда и событие, подобное нажатию кнопки, запускается на странице содержимого, вся страница поддерживается. Как я могу это решить?

ответ

1

Это будет зависеть от того, как вы настроили свою UpdatePanel.

Ключевые вещи, чтобы посмотреть на это:

  • UpdateMode свойство UpdatePanel
  • ChildrenAsTriggers свойство UpdatePanel
  • коллекция Триггеры UpdatePanel в

Например, если вы просто хотите, чтобы панель была обновлена ​​на одной кнопке, нажмите для:

  • UpdateMode=Conditional
  • ChildrenAsTriggers=False
  • и добавить кнопку в коллекцию UpdatePanel в Триггеры

Или, если вы хотите, чтобы все элементы управления внутри панели, чтобы вызвать частичный постбэк то просто установить ChildrenAsTriggers=True и не использовать коллекция триггеров.

This MSDN article описывает вышеуказанные свойства более подробно.

2

Вы можете получить доступ к объекту ScriptManager страницы с помощью метода GetCurrent().

Этот код обращается к ScriptManager в главной странице с содержанием страницы (добавление кнопки управления btnSubmit как Asynchronous управления):

protected void Page_Load(object sender, EventArgs e) 
{ 
    ScriptManager _scriptMan = ScriptManager.GetCurrent(this); 
    _scriptMan.RegisterAsyncPostBackControl(this.btnSubmit); 
} 

Но, я бы просто переместить ScriptManager из MasterPage на каждой странице контента потому что тогда вам не придется это делать.

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