我有一个DataList绑定到它的人的集合,每个人有一个按钮,点击时需要导致异步回发,所以OnClick事件处理程序可以更改UpdatePanel中显示的详细信息[DataList不在UpdatePanel]。如何总是从DataList中的按钮触发UpdatePanel的异步回传?
我做了两次尝试来设置按钮,以更改DataList的OnItemDataBound事件处理程序中的UpdatePanel。一个将AsyncPostBackTrigger分配给UpdatePanel,另一个将RegisterAsyncPostBackControl分配给ScriptManager。两者都有效,但只有第一次。如果按下另一个人的按钮[或第二次按下同一个按钮],则该页面会完全回传。
UpdatePanel的UpdateMode设置为Conditional,ScriptManager将EnablePartialRenderingEnablePartialRendering设置为true。
代码在OnItemDataBound:
Button btnShowNotes = e.Item.FindControl("btnShowNotes") as Button;
// Trigger
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = btnShowNotes.UniqueID;
trigger.EventName = "Click";
upDetails.Triggers.Add(trigger); // UpdatePanel
// The trigger or this is used, not both
ScriptManager1.RegisterAsyncPostBackControl(btnShowNotes);
一旦第一个异步回发发生,似乎失去了参考,但肯定这可以在无需重新绑定不断DataList控件被持久化?我必须以我尝试这种方式错过某些东西。
寻找答案在周末可能不会太成功,但烦人[通常]我需要的新功能需要去现场周一周一在此之前得到解决,这是没有完成停止它的唯一的事情! – Rich 2010-09-25 22:55:30