我有这个HTML标记:
<div id="profil_rating_container">
<div id="profil_rating">
<div id="pr">
<h2 id="rating" class="profil_rating_title">Hodnocení <asp:Label ID="lblAddRating" runat="server"><span><a href="#add_rating" title="Přidat hodnocení"><i class="fa fa-plus-circle"></i></a></span></asp:Label></h2>
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></ajaxToolkit:ToolkitScriptManager>
<ajaxToolkit:Rating ID="FinalRating" runat="server" MaxRating="5" ReadOnly="true" StarCssClass="ratingStar" WaitingStarCssClass="savedRatingStar" FilledStarCssClass="mainFilledRatingStar" EmptyStarCssClass="mainEmptyRatingStar" />
<br />
<asp:SqlDataSource ID="RatinSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:SportovniPlanetaCS %>"
SelectCommand="SELECT [RatingText], [RatingCount], [Name] FROM [rating] WHERE ([ProfileId] = @ProfileId) AND ([RatingText] IS NOT NULL)">
<SelectParameters>
<asp:QueryStringParameter Name="ProfileId" QueryStringField="id" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<asp:Repeater ID="RatingRepeater" DataSourceID="RatinSqlDataSource" runat="server" OnItemDataBound="RatingRepeater_ItemDataBound">
<ItemTemplate>
<h4><a href="#"><asp:Literal ID="RatingName" runat="server" Text='<%# Eval("Name") %>' /></a></h4>
<p class="p_rating"><asp:Literal ID="RatingText" runat="server" Text='<%# Eval("RatingText") %>'></asp:Literal></p>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblRating" runat="server" Text="Uživatel zatím nemá žádné hodnocení." Visible="false"></asp:Label>
</FooterTemplate>
</asp:Repeater>
</div>
</div>
</div>
当我从后面的代码中访问Ajax Control Toolkit评级时,FinalRating.CurrentRating = cmdRating.ExecuteScalar
它使用错误文本强调FinalRating
:'Final Rating'未声明。由于其保护级别,它可能无法访问。
我不知道为什么会这样。我在其他5个页面中有相同的代码,它工作正常,但在这一页中它不是。此外,当我添加新页面并添加Ajax评级时,我无法从后面的代码访问它。评级控件不在任何数据组件中,如转发器或数据列表。这可以通过FindControl
来解决吗?如果是的话,究竟是怎么回事?
有谁知道,是什么导致了这个问题?谢谢你的回答。