在c#中单击<a href>对象时如何获取ispostback = true

Posted

技术标签:

【中文标题】在c#中单击<a href>对象时如何获取ispostback = true【英文标题】:How to get ispostback=true when <a href> object is clicked in c# 【发布时间】: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>

【问题讨论】:

【参考方案1】:

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

【讨论】:

如果您不必发布任何数据,那么您可以避免所有这些 - 以及它的糟糕设计。除非您确实发布了一些数据

以上是关于在c#中单击<a href>对象时如何获取ispostback = true的主要内容,如果未能解决你的问题,请参考以下文章

单击时如何使href链接触发C#方法

C#动态创建接口的实现实例对象

C#排序比较

C#利用反射来判断对象是否包含某个属性的实现方法

在 c# 中单击 SelectAll 时的 CheckAll 复选框

单击链接并重定向时,如何添加活动类?