Asp.net Ajax с главной страницей

Я работаю в ASP.net с .Net Framework 2.0 и VS 2008 Team System

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


person Amit    schedule 03.09.2009    source источник


Ответы (2)


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

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

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

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

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

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

Эта статья MSDN описывает указанные выше свойства в Подробнее.

person HullCitySteve    schedule 03.09.2009

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

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

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

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

person BenB    schedule 03.09.2009