代码之家  ›  专栏  ›  技术社区  ›  Eray Balkanli

在C中单击对象时如何获取ispostback=true#

  •  0
  • Eray Balkanli  · 技术社区  · 6 年前

    我在ASP.NET 4.5中有如下两个href:

    <a href="/Admin/<%= prevPage %>" role="button" ><i class="fa fa-left"></i></a>
    <a href="/Admin/<%= nextPage %>" role="button" ><i class="fa fa-right"></i></a>
    

    在这里,我有一些过程需要在页面中执行,比如在C中加载

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           //loading data from db;
        }
    }
    

    当我点击这个a href时,页面加载事件被触发,ispostback变为false。因此,每当有人单击上一页或下一页的hrefs时,它就会一次又一次地加载数据,从而导致性能问题。我需要防止这种情况发生,这意味着在单击一个href链接后,我希望ispostback=true。处理这个问题的最佳方法是什么?

    我试过使用onclientlick=“return false;”,但没有用。 我试过用下面的asp:button和asp:linkbutton,但没用。

    <asp:Button ID="btnPrev" runat="server" Text="left" OnClick="RedirectPreviousPage" />
    protected void RedirectPreviousPage(object sender, EventArgs e)
    {
       var prevPage = CurrentPage == 1 ? -1 : CurrentPage - 1;
       Response.Redirect("/Admin/" + prevPage);
    }
    

    最好的解决方案是什么?如有任何帮助或建议,我们将不胜感激。我查过很多以前的相关话题,但找不到合适的解决方案。如果我造成了重复,请道歉。当做。

    编辑:也没用。

    <script>
         function RedirectPreviousPage()
         {
              window.location.href = "/Admin/<%= prevPage %>";
         }
    </script>
    <a href="#" role="button" onclick="RedirectPreviousPage(); return false;" ><i class="fa fa-chevron-left"></i></a>
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Eray Balkanli    6 年前

    将hrefs更改为“asp:linkbutton”,并将这些linkbutton的autopostback属性设置为true,解决了我的问题。