在web應用程序中如何把鼠標雙擊點的座標傳遞到服務器端,並對其進行操作?就此問題我將做個簡單介紹,希望對大家能有幫助。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
鼠標的雙擊事件是客戶端事件,無法直接在服務器端獲取鼠標雙擊點的座標,也就不能對其進行有效操作。所以必須通過客戶端事件和服務器端事件的結合來實現需求。
第一步:創建客戶端控件
在客戶端我們可以創建html控件。在程序中,你如果不希望鼠標雙擊點的座標顯示在頁面上,可以創建HtmlInputHidden控件。我創建的控件如下:
protected System.Web.UI.HtmlControls.HtmlInputHidden hidx;
protected System.Web.UI.HtmlControls.HtmlInputHidden hidy;
如果你希望雙擊點座標顯示出來,那你就可以根據自己的需要來創建相應的客戶端控件。
第二步:創建服務器端控件
爲了簡單明瞭的顯示程序結果,我創建了兩個Label控件和一個Button控件。如下:
protected System.Web.UI.WebControls.Label lblX;
protected System.Web.UI.WebControls.Label lblY;
protected System.Web.UI.WebControls.Button btnxy;
第三步:添加客戶端代碼
爲了在窗體中把鼠標雙擊點的座標傳遞到兩個html控件中,編寫腳本:
<script language="javascript" id="shubiaoshijian">
function shubiao_ondblclick()
{
document.Form1.hidx.value=window.event.clientX;
document.Form1.hidy.value=window.event.clientY;
}
</script>
給body添加ondblclick()事件
<body MS_POSITIONING="GridLayout" οndblclick="shubiao_ondblclick()">
第四步:添加服務器端代碼
在服務器端的Button控件btnxy的單擊事件中就可以接受鼠標雙擊點的座標值了:
private void btnxy_Click(object sender, System.EventArgs e)
{
lblX.Text = “X座標:” + hidx.Value ;
lblY.Text = “Y座標:” + hidy.Value ;
}
通過以上步驟,我們就可以把客戶端的鼠標雙擊點的座標傳遞到了服務器端。接下來就可以利用這些座標值來實現我們的其他需求了。