0

我的 ASP.NET 页面中有一个 AJAX 控件工具包TabContainer。在 中的一个选项卡中TabContainer,有一个GridView。现在,我有一个UpdatePanel我想作为GridView上面提到的“RowCommand”的触发器。是在UpdatePanel外面TabContainer。但是当我给出GridViewid 时,我得到了错误:

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

触发标记:

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

1 回答 1

1

您必须以编程方式将触发器添加到您的UpdatePanel. 这是因为您的 GridView 可能会或可能不会以不同于ContentPlaceHolderUpdatePanel即,<ContentTemplate>您的TabContainer)的方式开始。Page_Init像这样(请注意,由于Page Life Cycle,这确实需要在 中完成):

protected void Page_Init(object sender, EventArgs e)
{
    AsyncPostBackTrigger trig = new AsyncPostBackTrigger();
    trig.ControlID = grvSummary.UniqueID;
    trig.EventName = "RowCommand";
    updSegment.Triggers.Add(trig);
}

看起来这可能是 ASP.NET / AJAX 的问题,假设用作触发器的Control.UniqueID值错误。Control

来源:在不同的 ContentPlaceHolder 中触发 UpdatePanel

于 2012-04-04T16:18:19.547 回答