加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何让我的转发器的Itemcommand事件不进行整页回发?

发布时间:2020-12-16 07:28:50 所属栏目:asp.Net 来源:网络整理
导读:在我的用户控件中,我有以下标记: div id="pageEditsView" style="margin-left:540px" asp:UpdatePanel runat="server" Triggers asp:AsyncPostBackTrigger ControlID="PageEditList"/ /Triggers ContentTemplate asp:HiddenField runat="server" ID="Curren
在我的用户控件中,我有以下标记:

<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);
         }
     }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读