【问题标题】:How to get ispostback=true when <a href> object is clicked in c#在c#中单击<a href>对象时如何获取ispostback = true
【发布时间】:2019-06-04 17:23:23
【问题描述】:

我在 asp.net 4.5 中有 2 个如下链接:

<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# 中的 page_load 中有一些过程要做

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

当我点击这个 a href 时,会触发 page_load 事件,并且 IsPostBack 为 false。因此,每当有人单击上一页或下一页 href 时,它就会一次又一次地加载数据,从而导致性能问题。我需要防止这种情况发生,这意味着在单击 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>

【问题讨论】:

    标签: c# html asp.net href asp.net-4.5


    【解决方案1】:

    将 href 更改为“asp:LinkBut​​ton”并将这些链接按钮的 AutoPostBack 属性设置为 true 解决了我的问题。

    【讨论】:

    • 如果您不必发布任何数据,那么您可以避免所有这些 - 以及它的糟糕设计。除非您确实发布了一些数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2012-04-28
    • 2019-11-17
    • 2018-05-05
    • 2011-09-24
    • 2020-05-27
    相关资源
    最近更新 更多