使用tabcontainer时获取控件ID的问题

时间:2012-04-03 06:47:13

标签: asp.net ajaxcontroltoolkit tabcontainer

我的ASP.NET页面中有一个AJAX控件工具包TabContainer。在TabContainer的其中一个标签中,有一个GridView。现在,我有一个UpdatePanel,我想将触发器作为上面提到的GridView的“RowCommand”。 UpdatePanel位于TabContainer之外。但是,当我提供GridView ID时,我收到错误:

  

在UpdatePanel'updSegment'中找不到ID为'grvSummary'的控件。

触发标记:

<asp:AsyncPostBackTrigger ControlID="grvSummary" EventName="RowCommand" />

1 个答案:

答案 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