update panel 内部的控件,在没有ID情况下,如何同步回发?

2017-01-11 00:12 出处:360java.com 作者:360java 评论(
gridview外加了个update panel ,导致自定义模板里的编辑按钮无法同步回发,于是乎写了一个事件,但事件只能保证按钮在第一次单击时是同步回发,第二次就不行了。求解决方案?protect

gridview外加了个update panel ,导致自定义模板里的编辑按钮无法同步回发,于是乎写了一个事件,但事件只能保证按钮在第一次单击时是同步回发,第二次就不行了。求解决方案?

protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                。。。
                var lnkAddSub = e.Row.FindControl("lnkAddSub") as LinkButton ;
                if (lnkAddSub != null)
                {
                    ScriptManager1.RegisterPostBackControl(lnkAddSub);
                }
                。。。
            }
        }

protected void gvList_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "AddSub")
            {
                return;
            }
         }
最佳答案

黄天不负苦心人啊,我解决了,倒也不是完全依赖网络。这篇帖子给了我一些提示:

http://www.codeproject.com/Messages/2483369/Doing-a-sync-normal-postback-from-and-gridview-ins.aspx

贴子中有一个标题:Doing a sync(normal) postback from and gridview inside an ajax updatepanel

里面谈到在gridview内部再嵌入一个update panel ,嵌入的位置是使要同步回发的控件的ID可以被访问的模板内,然后做类似的设置:

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
                                                                            <Triggers>
                                                                                <asp:PostBackTrigger ControlID="lnkAddSub" />
                                                                                <asp:PostBackTrigger ControlID="lnkEdit" />
                                                                            </Triggers>
                                                                            <ContentTemplate>
                                                                            </ContentTemplate>
                                                                        </asp:UpdatePanel>

就可以完成同步回发了。注意不要往ContentTemplate里写绑定数据哦,只要把控件ID设置成同步回发就可以了,否则像 CommandArgument='<%#Container.DataItemIndex %>'这样绑定就错了,因为放进去Container就变了嘛,我刚才还纠结了一小会儿呢。

呵呵,谢谢你给的园豆,也没帮上你忙,有问题大家互相研究哈

分享到:
本文标签: asp.net, web前端, asp.net ajax, aja

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

Copyright (C) 360java 360java.com, All Rights Reserved.

苏ICP备16022210号