I have a WebSplitter with two panes (left and right). In the right pane, is an UpdatePanel that wraps a grid control. There are a few buttons in the left pane. I am finding that, when using a WebSplitter, I cannot set the UpdatePanel triggers collection in the client side markup. Normally, I would do something like this:
<cc1:SplitterPane runat="server" Size="75%" enableRelativeLayout="true" style="position:relative" >
<Template>
<asp:UpdatePanel ID="updPanelView" runat="server" RenderMode="Inline">
<ContentTemplate>
<div id="divView" runat="server" style="height: 100%; width: 100%; vertical-align: top;"
align="left">
<uc1:View ID="View" runat="server" />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="cmdGo" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="igTree" EventName="NodeClicked" />
</Triggers>
</asp:UpdatePanel>
</Template>
</cc1:SplitterPane>
But, if I add the Triggers collection, I get the following error message:
A control with ID 'cmdGo' could not be found for the trigger in UpdatePanel 'updPanelView'
So, instead, I remove the Triggers collection and add them in the code-behind Page_Load, like this:
Dim trigger As New System.Web.UI.AsyncPostBackTrigger
trigger.EventName =
"Click"trigger.ControlID = Me.cmdGo.UniqueID.ToString
Me.updPanelView.Triggers.Add(trigger)trigger = New System.Web.UI.AsyncPostBackTrigger
trigger.EventName =
"NodeClicked"trigger.ControlID = Me.igTree.UniqueID.ToString
Me.updPanelView.Triggers.Add(trigger)
That gets past the first error. But, it only works every other event. In other words, the first time I hit the cmdGo button, the async postback works properly. The next time, I get a full page postback, then the next an async postback. And, so it goes.
Anyone experience similar problems? Solutions?
Thanks