2015-08-01 4 views
0

У меня есть корзина на главной странице, в которой находится эта корзина внутри панели обновления.
На моей странице контента у меня есть список, что в этом списке есть linkbutton для добавления продукта в корзину.
Я хочу добавить товар в корзину с помощью этих кнопок ссылки без обновления, и корзина обновлена. У меня этот код на моей странице содержания:панель обновления на главной странице и asyncpostbacktrigger на странице содержания

protected void Page_Init(object sender, EventArgs e) 
    { 
     UpdatePanel up = (this.Master.Master.FindControl("UpCart")) as UpdatePanel; 
     AsyncPostBackTrigger trigger = new AsyncPostBackTrigger(); 
     trigger.ControlID = lvNewProducts.UniqueID; 
     trigger.EventName = "ItemCommand"; 
     up.Triggers.Add(trigger); 

    } 

Но моя страница обновляется, когда я нажимаю на кнопку ссылки.
Пожалуйста, помогите!

ответ

0

Вы хотите, чтобы частичный пост вернулся, и вы получаете полный пост назад?

Я думаю, вы не можете добавить AsyncPostbackTriggers на панель обновлений из другого контейнера именования. Вы попытались с помощью lvNewProducts.UniqueID установить ControlID, который обычно устанавливается с идентификатором. Так что это намек на то, что это может быть так.

Что вы можете сделать, это вызвать RegisterAsyncPostBackControl в ScriptManager. Если предположить, что ScriptManager находится в вашей главной странице, и это идентификатор myScriptManager у вас есть TODO следующее:

protected void Page_Init(object sender, EventArgs e) 
{ 
    ScriptManager myScriptManager = (this.Master.Master.FindControl("myScriptManager")) as ScriptManager; 
    if (scriptManager != null) { 
     scriptManager.RegisterAsyncPostBackControl(lvNewProducts); 
    } 
} 

, который заменил свой код и должно привести к частичному пост обратно. Ссылка на панель обновления для обновления по-прежнему отсутствует, поэтому вы должны сделать следующее, чтобы обновить ее в обработчике событий ItemCommand (например, если вы установили OnItemCommand = «ListViewClicked»:

protected void ListViewClicked(object sender, EventArgs args) { 
    //Do whatever necessary 

    //Now update your update panel 
    UpdatePanel up = (this.Master.Master.FindControl("UpCart")) as UpdatePanel; 
    if (up != null) { 
     up.Update(); 
    } 
} 
Смежные вопросы