【问题标题】:I want an HTML anchor call a page method and JUST that method;No page_load. Is that posiible?if it is then HOW?我想要一个 HTML 锚点调用一个页面方法,并且只需要那个方法;没有 page_load。那是可行的吗?如果是,那么如何?
【发布时间】:2013-05-09 00:40:48
【问题描述】:
<a href="A.aspx?qs=2"></a>

单击它应该会触发 A.aspx 的 CodeBehind 中的 GetMeData(obj sender, eventargs e) 方法 GetMeData() 也绑定到一个 aspButton 需要在点击事件上重用这个方法 HTML 链接。

public void Page_Init(object o, EventArgs e)
    {
        if (!string.IsNullOrEmpty(Request.QueryString["curPage"]))
        {
            FilterOrdersByDate();
        }
    }


public  void FilterOrdersByDate(object sender, EventArgs e)
    { //with some bll logic it calls:
  List<ESalesOrder> list = bsales.GetSalesOrderAdminByDate(esalesDate,curPage,perPage);
}

但是调用 FilterOrdersByDate();永远不会达到它,但仍然满足上述条件......相反,它会通过页面加载并执行在 page_load 中找到的任何内容并完成......这就是全部。

【问题讨论】:

    标签: asp.net anchor pageload


    【解决方案1】:

    嗯...传递查询字符串根本不是问题。

    问题:您在哪里绑定这些数据?

    如果您不想在 page_load 上调用该方法,我想您应该在 web 控件上调用 on_item_data_bound。

    方法如下所示:

    protected void On_ItemDataBound(object sender, EventArgs e)  
    {
        //Request query string and do something.
    }
    

    然后你在web控件上调用这个方法。

    干杯。

    【讨论】:

    • > 这个 "qs=2" 数据绑定到 GetMeData 方法,它通过捕获 fromReq.QryStrng["qs"] 来使用它,然后从数据库中给我带来一个查询列表...
    【解决方案2】:

    你不能直接做到这一点,但这样的事情我可以做到

    A.aspx.cs 你应该有这样的代码

    protected void Page_Load(obj sender, eventargs e)
    {
        // If querystring contains qs=2, I call CommonGetMeData method
        if (Request.QueryString["qs"] != null && Request.QueryString["qs"] == "2")
        {
            CommonGetMeData();
        }
        else
        {
            // here goes the rest of the page_load logic
        }       
    }
    
    protected void GetMeData(obj sender, eventargs e)
    {
        // When event triggered, I also call CommonGetMeData method
        CommonGetMeData();
    }
    
    protected void CommonGetMeData()
    {
        // your logic. This method will be called from event 
        // handler and in case querystring contains qs=2
    }
    

    【讨论】:

    • > 那是我无法避免执行其余的页面加载代码?你像我一样被卡住了吗?无论如何我会尝试这个并让你知道..
    • 您可以在 else 上执行 page_load 的其余部分。更新了我的答案。
    • >我今天试过了,虽然不像你通过调用一个方法然后在其中调用目标并再次编写它。但是我的没有工作它只是找到它并忽略它,就像我看到的那样通过调试点...
    猜你喜欢
    • 1970-01-01
    • 2021-08-10
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多