gpt4 book ai didi

c# - Asp .Net 更新面板不更新

转载 作者:行者123 更新时间:2023-11-30 22:16:24 34 4
gpt4 key购买 nike

我有 2 个页面,每个页面都有一个更新面板。它在两个页面上具有相同的内容和相同的触发器。

它是这样的:

                     <div id="rating">
<span class="rateTxt">Rate</span>
<telerik:RadRating ID="RadRating1" runat="server" ItemCount="5" SelectionMode="Continuous"
Precision="Item" Skin="Default" OnRate="RadRating1_Rate" AutoPostBack="true">
</telerik:RadRating>
</div>
</li>
</ul>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div id="divAddMessage" runat="server" visible="false">
<span class="rateTxt">Do you want to add a comment?</span>
<asp:TextBox runat="server" ID="txtComment" TextMode="MultiLine" Rows="3" Width="195">
</asp:TextBox>
<br />
<br />
<asp:ImageButton runat="server" ID="lnkAddComment" ImageUrl="~/App_Themes/123reg/Images/submit-rating.png"
OnClick="lnkAddComment_Click" OnClientClick="showSuccessMessage();" />
<br />
<br />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="RadRating1" EventName="Rate" />
</Triggers>
</asp:UpdatePanel>

现在,当用户使用 RadRating 对某些东西进行评分时,会触发 Rate 事件,这会导致回发。

在 Rate 事件的处理程序上,我执行以下操作:

    protected void RadRating1_Rate(object sender, EventArgs e)
{
divAddMessage.Visible = true;
}

相同的代码恰好在 2 个页面上。在一个页面上它更新 divAddMessage 并且它变得可见但在另一个页面上它不可见。即使当它再次回发时我将它设置为在该页面上可见,即使在上述处理程序中将其设置为 true 后,Visible 属性仍然是 false。

我只在 aspx 文件中将 visibily 设置为 false,在上面的处理程序中我将它设置为 true。

事实证明,我在 javascript 控制台中收到错误:

Sys.InvalidOperationException: Sys.InvalidOperationException: Could not find UpdatePanel with ID 'ctl00_mainContentPlaceHolder_updatePanel'. If it is being updated dynamically then it must be inside another UpdatePanel.

我在多 View 中有另一个更新面板。但是因为事件 View 不是在回发时带有更新面板的 View ,所以不会呈现更新面板。

最佳答案

检查 divAddMessage 的父/容器元素。他们是否将可见性设置为假。如果是这样,则子元素将始终为 Visible=false,即使您已明确将其设置为 true。这在过去让我发疯。

一个想法

关于c# - Asp .Net 更新面板不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17424484/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com