gpt4 book ai didi

c# - ListView 控件中的 ASP.NET 更新面板未更新

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:45 26 4
gpt4 key购买 nike

基本上我有这种情况

页面> 更新面板 > 用户控制 > ListView > 用户控制(在项目模板内)> 更新面板

当我点击最里面的更新面板中的按钮时,我希望更新面板的内容得到更新。这没有发生。但是,点击处理程序被异步点击。更新面板只是不想更新。

代码 - 我创建了一个简单的测试网络应用程序来复制问题,并在我的谷歌驱动器上共享它:UpdatePanelInListViewTest.zip ,但这是标记:

页面:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="ajaxParent" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<uc1:ListUserControl ID="ListUserControl1" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>

列出用户控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ListUserControl.ascx.cs" Inherits="UpdatePanelInListViewTest.ListUserControl" %>
<%@ Register src="MiniWidget.ascx" tagname="MiniWidget" tagprefix="uc1" %>
<asp:ListView ID="lstTest" runat="server">
<ItemTemplate>
Item
<uc1:MiniWidget ID="MiniWidget1" runat="server" />
</ItemTemplate>
</asp:ListView>

迷你小部件用户控件

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MiniWidget.ascx.cs" Inherits="UpdatePanelInListViewTest.MiniWidget" %>
<asp:UpdatePanel ID="ajaxWidget" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="lnkTest" runat="server" onclick="lnkTest_Click">Test</asp:LinkButton>
<asp:Label ID="lblTest" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>

我尝试了不同的排列方式;即,将按钮放在面板外并添加触发器等,但我就是无法更新它。

似乎因为用户控件位于父 ListView 的项模板内,所以导致更新面板由于某种原因无法更新...

最佳答案

问题与您在 ListUserControl 中调用 databind 方法有关。

移动 lstTest.DataBind(); 以便它在 Page_Load 而不是 Page_PreRender 中执行可以解决您的 问题简单的测试网络应用程序

关于c# - ListView 控件中的 ASP.NET 更新面板未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032242/

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