Control i placeholder og AsyncPostBackTrigger
Jeg genererer dynamisk en graf (image map) vha. MS Charts (datavisualization) fra codebehind og overfører dette billede/control til aspx siden vha. en placeholder.Dette fungerer også fint, problemet er at jeg på serierne på grafen har nogle postback værdier, som skal generer en ny graf i en anden placeholder (asynkront). Når jeg henter siden får jeg ingen fejl fra debuggeren, men når jeg trykker på grafen sker der intet (og jeg kan se i debuggeren fra browseren f12, at den ikke kan finde det controlid som jeg bruger til den asynkrone postback) Sys.WebForms.PageRequestManagerServerErrorException: A control with ID 'Chart0' could not be found for the trigger in UpdatePanel 'UpdatePanel1'.
Er det fordi jeg ikke få fat i controlid'et når det ligger i en placeholder udenfor updatepanellet, eller ???
Aspx:
<div style="float: left; width: 483px; height: 420px; border: solid 1px #CCCCCC;">
<span class="sub_header2">S p æ d e v a n d s</span><span class="sub_header1"> F o r b r u g</span><span class="sub_header3"> ( F T S V A N D )</span>
<asp:PlaceHolder runat="server" id="phimg0"/>
</div>
<div style="float: left; width: 2px; height: 100px; margin: 0 auto;">
</div>
<div style="float: left; width: 483px; height: 420px; border: solid 1px #CCCCCC;">
<span class="sub_header2">S p æ d e v a n d s</span><span class="sub_header1"> H i s t o r i k</span><span class="sub_header3"></span>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server" ChildrenAsTriggers=true >
<ContentTemplate>
<asp:Label id="Postback_Text" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Chart0" />
</Triggers>
</asp:UpdatePanel>
<div style="margin-top: 8px;"><asp:PlaceHolder runat="server" id="phimg1"/></div>
</div>
Codebehind:
Dim myControl As Control = FindControl("phimg" & i)
Dim myChart As New Chart
mychart.ID = "Chart" & i
myControl.Controls.Add(myChart)
myChart.Height = Unit.Pixel(MyChartSpecifics(i,4))
myChart.Width = Unit.Pixel(MyChartSpecifics(i,1))
myChart.RenderType = RenderType.ImageTag
myChart.ImageStorageMode = ImageStorageMode.UseImageLocation
myChart.ImageLocation = "~/Images/Chart" & i
'AddHandler myChart.Click, AddressOf myChart_Click
'myChart.CssClass = "chart"
..og lidt længere nede
myChart.Series(1).PostBackValue = "#VALX"