gpt4 book ai didi

c# - 无法更新第二个更新面板

转载 作者:行者123 更新时间:2023-11-30 13:05:46 24 4
gpt4 key购买 nike

我的页面上有 3 个更新面板,我希望其中 2 个在触发事件时更新。在其中一个更新面板中,我有一个 asp ReoderList。

<asp:UpdatePanel ID="upMain" UpdateMode="Conditional" runat="server" style="left: 0px; top: 0px; min-height: 100px; width: 495px; overflow: auto;">
<ContentTemplate>
<div class="reorderListDemo" style="position: relative; left: -41px; width: 490px; overflow: auto;">
<ajax:ReorderList ID="rlAlerts" Style="min-height: 100px; padding: 0px 6px 0px 0px;" Width="480px" runat="server" PostBackOnReorder="false" CallbackCssStyle="callbackStyle" DragHandleAlignment="Left" DataKeyField="ItemID" SortOrderField="Priority" OnItemReorder="rlAlerts_ItemReorder">
<ItemTemplate>
<%--set the class to inactiveAlert if the active flag is set to false--%>
<div id="alertItem<%# Eval("ItemID")%>" class="<%# Convert.ToBoolean(Eval("Active")) ? "" : "inactiveAlert" %>" onclick="updateAlertPreview('<%# Eval("ItemID")%>','<%# Eval("Priority")%>','<%# Eval("Title") %>','<%# Eval("Description") %>', '<%# Eval("StartDate") %>', '<%# Eval("EndDate") %>', '<%# Eval("Image") %>');">
<div style="position: relative; float: left; left: 10px; padding-top: 6px; overflow: hidden; width: 180px; height: 17px;">
<asp:Label ID="Label4" runat="server" Text='<%# HttpUtility.HtmlEncode(Convert.ToString(Eval("Title"))) %>' />
</div>
</div>
</ItemTemplate>
<ReorderTemplate>
<asp:Panel ID="Panel2" runat="server" CssClass="reorderCue" />
</ReorderTemplate>
<DragHandleTemplate>
<div class="dragHandle">
</div>
</DragHandleTemplate>
</ajax:ReorderList>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rlAlerts" EventName="ItemReorder" />
<asp:AsyncPostBackTrigger ControlID="ckbxShowInactive" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>

目前,此更新面板将更新项目重新排序或复选框状态更改。现在我有了第二个 updatePanel,它不会在列表重新排序时更新。

<asp:UpdatePanel ID="UpdatePanelAlertOrderNotification" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Label ID="lblOrderChangedNotification" runat="server"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rlAlerts" EventName="ItemReorder" />
</Triggers>
</asp:UpdatePanel>

下面是我的代码:

    protected void rlAlerts_ItemReorder(object sender, AjaxControlToolkit.ReorderListItemReorderEventArgs e)
{
.....
Session["AlertOrderChangedNotification"] = Resources.LocalizedText.Alert_Order_Changed;

lblOrderChangedNotification.Text = "AWESOME";
//lblOrderChangedNotification.DataBind();
//UpdatePanelAlertOrderNotification.Update();
}

我已逐步检查代码,但无法弄清楚为什么它不起作用。

我累的事情:我累了: 将 UpdatePanelAlertOrderNotification 的 UpdateMode 设置为始终。 将 UpdatePanelAlertOrderNotification 的 UpdateMode 设置为有条件的,删除其触发器并让代码隐藏函数更新 直接更新面板。 将文本存储在 session 中,并在页面发布时触发以检查 session 中是否有文本。我能够在 pageLoad 中跳过这段代码 功能,它仍然没有做任何事情。 (尝试注释掉两行,然后只注释掉 1 行,然后没有注释掉。)

protected void Page_Load(object sender, EventArgs e)
{
if (Session["AlertOrderChangedNotification"] != null)
{
lblOrderChangedNotification.Text = Session["AlertOrderChangedNotification"] as string;
//lblOrderChangedNotification.DataBind();
//UpdatePanelAlertOrderNotification.Update();
}
}

我不知道我是否有问题,因为我有两个具有相同触发器的更新面板(尽管 我尝试将其从 UpdatePanelAlertOrderNotification 中删除并将其设置为始终。)

变化:所以我尝试添加一个新按钮并让更新面板更新。这行得通。如果我将触发器切换回重新排序列表,它就不起作用。所以我的问题是,我可以使用相同的触发器设置 2 个不同的 updatePanel 吗?如果我做不到,我应该能够通过调用 UpdatePanelAlertOrderNotification.Update() 进行损坏的更新?想法?

<div style="position: absolute; top: 195px; right: 10px; height: 100px; width: 120px; overflow: hidden;">
<asp:UpdatePanel ID="UpdatePanelAlertOrderNotification" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Label ID="lblOrderChangedNotification" runat="server"></asp:Label>
</ContentTemplate>
<Triggers>
<%--<asp:AsyncPostBackTrigger ControlID="rlAlerts" EventName="ItemReorder" />--%>
<asp:AsyncPostBackTrigger ControlID="btnUpdateBrokenUpdatePanel" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<div style="position: relative; top: 25px; left: 10px;">
<asp:Button ID="btnUpdateBrokenUpdatePanel" runat="server" CssClass="redButton" Width="300px" Height="25px" Text="Update Broken UPdatePanel" OnClick="btnUpdateBrokenUpdatePanel_Click" />
</div>

任何帮助都会很棒。谢谢布拉德

最佳答案

我猜你遇到了更新面板没有得到正确通知的问题,我会用条件触发器设置包装面板,然后让它在其他两个面板上调用更新方法。

您要确保的一件事是,实际更新这些项目显示的代码也已执行。

关于c# - 无法更新第二个更新面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3265722/

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