前台調用后台事件和方法實現小結


      在實際開發過程中,我們的HTML元素需要調用后台,而且需要讓后台進行復雜運算后再進行數據重新綁定操作,遇到這樣的問題怎么辦呢?可能有人說在后台創建一個方法,該方法實現綁定數據操作,但是實際呢?結果不盡人意,它沒有執行綁定的實現,而只是簡單的執行一下方法但是前台無反應,為什么出現這樣的情況?原來前台調用后台方法其實只是返回結果,對實現過程及元素組合變化不管不問,它只是關注執行后的結果,不為過程買單,那么有什么方法解決這個問題呢?想想?我們可不可以讓前台HTML元素觸發ASP.NET按鈕來觸發事件呢,同時隱藏這個按鈕?讓它去實現綁定操作。該技巧是可行的!!本樓主為了操作簡單沒有以綁定數據作為示例,而只是簡單的打印數據,原理基本和綁定數據類似,代碼如下:

這是前台代碼:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <script src="JS/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#btnTJ1").bind("click", function () {
                var result = '<% =Print2Web() %>';
                alert("執行完畢,請檢查一下后台數據有沒有打印出來");//結果顯然沒有打印出來
            });

            $("#btnTJ2").bind("click", function () {
                $("#<%= btnGet.ClientID %>").trigger("click");//效果實現了
            });
        });
    </script>
</head>
<body>
    <form runat="server">
        <input type="button" value="前台HTML元素調用后台方法" id="btnTJ1" />
        <input type="button" value="前台HTML元素調用后台事件" id="btnTJ2" />

        <div style=" visibility: hidden">
            <asp:Button ID="btnGet" runat="server" Text="輔助前台獲取數據" onclick="btnGet_Click" />
        </div>
    </form>
</body>
</html>

 下面是后台代碼:

protected void Page_Load(object sender, EventArgs e)
{

}

/// <summary>
/// 通過借助后台事件 -- 能否在頁面輸出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnGet_Click(object sender, EventArgs e)
{
    //
    // 這里有復雜實現
    //
    Response.Write("事件按鈕打印--測試成功");
}

/// <summary>
/// 后台方法  -- 目的是前台調用,能否在頁面輸出
/// </summary>
public int Print2Web()
{
    //
    // 這里有復雜實現
    //
    Response.Write("調用方法打印--測試成功");
    return 1;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM