我的ASP.NET页面中有一个AJAX控件工具包TabContainer
。在TabContainer
的其中一个标签中,有一个GridView
。现在,我有一个UpdatePanel
,我想将触发器作为上面提到的GridView
的“RowCommand”。 UpdatePanel
位于TabContainer
之外。但是,当我提供GridView
ID时,我收到错误:
在UpdatePanel'updSegment'中找不到ID为'grvSummary'的控件。
触发标记:
<asp:AsyncPostBackTrigger ControlID="grvSummary" EventName="RowCommand" />
答案 0 :(得分:1)
您必须以编程方式将触发器添加到UpdatePanel
。这是因为您的GridView可能会或可能不会以ContentPlaceHolder
开始,而不是UpdatePanel
(即<ContentTemplate>
的{{1}}。像这样(请注意,由于Page Life Cycle),这确实需要在TabContainer
中完成:
Page_Init
看起来这可能是ASP.NET / AJAX的一个问题,假设protected void Page_Init(object sender, EventArgs e)
{
AsyncPostBackTrigger trig = new AsyncPostBackTrigger();
trig.ControlID = grvSummary.UniqueID;
trig.EventName = "RowCommand";
updSegment.Triggers.Add(trig);
}
的{{1}}值被用作触发器。
来源:Triggering an UpdatePanel in a different ContentPlaceHolder