gpt4 book ai didi

asp.net - 我如何让中继器的Itemcommand事件不执行整页回发?

转载 作者:行者123 更新时间:2023-12-04 13:32:51 25 4
gpt4 key购买 nike

在我的用户控件中,我具有以下标记:

<div id="pageEditsView" style="margin-left:540px">
<asp:UpdatePanel runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="PageEditList"/>
</Triggers>
<ContentTemplate>
<asp:HiddenField runat="server" ID="CurrentPageId"/>
<asp:Label runat="server" ID="EditDisplayLabel" Visible="False">Edits tied to this page:</asp:Label>
<br/>
<ul>
<asp:Repeater runat="server" ID="PageEditList" OnItemCommand="PageEditList_ItemCommand">
<ItemTemplate>
<li>
<%# ((PageEdit)Container.DataItem).CachedName %>
(<asp:LinkButton ID="LinkButton1" runat="server" Text="remove" CommandName="remove" CommandArgument="<%# ((PageEdit)Container.DataItem).Id %>" />)
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</ContentTemplate>
</asp:UpdatePanel>
</div>

每当我单击“删除链接”按钮时,它就会执行整页的回发,而不仅仅是更新此控件的面板。我的母版页具有以下设置:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="True" />

该应用程序的其他部分(我继承了该部分,并且不再编写此文件的旧开发人员)似乎可以进行部分页面更新。难道我做错了什么?

最佳答案

尝试注册linkbutton as async postback control,合适的位置是 ItemCreated 事件,该事件在每个(异步/完整)回发中触发:

protected void PageEditList_ItemCreated(Object Sender, RepeaterItemEventArgs e) 
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
ScriptManager scriptMan = ScriptManager.GetCurrent(this);
LinkButton btn = e.Item.FindControl("LinkButton1") as LinkButton;
if(btn != null)
{
btn.Click += LinkButton1_Click;
scriptMan.RegisterAsyncPostBackControl(btn);
}
}
}

关于asp.net - 我如何让中继器的Itemcommand事件不执行整页回发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641724/

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