一页网站和 ASP GridView 回发问题

Posted

技术标签:

【中文标题】一页网站和 ASP GridView 回发问题【英文标题】:One page website and ASP GridView postback issue 【发布时间】:2018-01-18 12:55:10 【问题描述】:

我有一个包含不同部分的单页网站。一个特定的部分(第 2 部分)具有允许内联编辑的网格视图。

问题: 当 OnClick 方法被触发时,它会导致回发并且页面滚动到第一部分。

为了覆盖这一点,我尝试了同样的重定向:

Response.Redirect("Home.aspx#section2");

在这种情况下,它完美地重定向,但 gridview 编辑模板丢失并且项目模板再次显示。我的猜测是,gridview 是反弹。

我也尝试过 here 的 javascript 方式。它给出了相同的结果。

<asp:Button ID="Edit" runat="server" Text="Edit" OnClick="Edit_OnClick" 
 OnClientClick="document.location.href+='#section2';return false;"></asp:Button>

我也尝试过链接按钮的 portbackurl 属性。我得到了同样不想要的结果。

关于我应该如何解决这个问题的任何建议?我只想能够在没有页面刷新或重定向的情况下进入第 2 节。 提前感谢您的帮助! :)

【问题讨论】:

谢谢伊薇特!如果可能的话,你能给我一个例子吗?我找不到一起编辑 JS Onchange 事件和网格视图的示例。 【参考方案1】:

您可以像下面这样在更新面板中移动您的gridview,并在按钮单击时更新代码后面的更新面板

ASPX:

在页面标签上提供 MaintainScrollPositionOnPostback 为 true

或者您可以进行部分回发

 <asp:UpdatePanel ID="updList" runat="server" UpdateMode="Conditional">
                                    <ContentTemplate>

.......

  </ContentTemplate>
                                </asp:UpdatePanel>

代码背后:

protected void Edit_OnClick(object sender, EventArgs e)
        
           //code to update data or save data
            updList.Update();           
        

【讨论】:

【参考方案2】:

了解 UseSubmitProperty 或试试这个..

<a data-toggle="modal" href="login.aspx#myModal">Forgot Password?</a>

<div aria-hidden="true" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" id="myModal" class="modal fade">
                        <div class="modal-dialog">
                            <div class="modal-content">
                                <div class="modal-header">
                                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                                    <h4 class="modal-title">Forgot Password ?</h4>
                                </div>
                                <div class="modal-body">
                                    <p>Enter your e-mail address below to reset your password.</p>
                                    <asp:TextBox ID="emailForgot" placeholder="Email" CssClass="form-control" runat="server" TextMode="Email"></asp:TextBox>
                                </div>
                                <div class="modal-footer">
                                    <button data-dismiss="modal" class="btn btn-default" type="button">Cancel</button>
                                    <asp:LinkButton ID="LinkButton1" CssClass="btn btn-theme" runat="server" OnClick="LinkButton1_Click">Submit</asp:LinkButton>
                                </div>
                            </div>
                        </div>
                    </div>

【讨论】:

以上是关于一页网站和 ASP GridView 回发问题的主要内容,如果未能解决你的问题,请参考以下文章

ASP .NET单页上的多个用户控件 - 回发问题

ASP.net .FindControl() 和 GridView 返回 null

ASP .NET - 在 GridView 中更新之前保存现有数据的副本

asp的 gridview自定义分页 怎么实现这 第2页/共10页 <首页><上一页>1 2 3 4 5 ....<下一页><尾页> 不用插件

如何使用C#和ASP.NET将数据从Gridview行解析到另一个页面

Asp.net Gridviews 和数据库