0
有沒有辦法將文本文本保存到會話變量,而不必回發文本更改?更新會話變量上textbox_change沒有回傳
有沒有辦法將文本文本保存到會話變量,而不必回發文本更改?更新會話變量上textbox_change沒有回傳
您需要在4個階段完成此操作。
1)添加onkeydown="textChanged(this.ID);"
到您的文本框
2)使用JavaScript來捕獲文本
3)消防Ajax調用的Web方法
4)使用Web方法存儲會話變量。
因此,像這樣:
在您的文本框,設置Autopostback=false
所以你不要回來後打字。
創建一個小的Javascript函數,當用戶輸入時會被解僱。
此功能將首先清除連接到文本框的任何計時器。那麼它會創建另一個會在1秒後觸發另一個功能。這將確保您不會過於頻繁地觸發最終功能。
function textChanged(id) {
var txtBox = document.getElementById(id);
clearTimeout(txtBox.timer);
txtBox.timer = setTimeout('SaveVariable()', 1000);
};
1秒後,你的方法調用是這樣的:
function SaveVariable(){
// Do an ajax call in here and send your textbox value to a web method
var t = // GetYourTextboxTextHere
if (t != "") {
$.ajax({
type: "POST",
url: "yourPage.aspx/SaveMyTextVar",
data: "{'textToSave ': '" + escape(t) + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (!msg.d) {
// it didn't save
} else {
// it saved just fine and dandy
};
}
});
};
}
最後,在你的代碼一個小型Web方法背後捕獲文本
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> <Services.WebMethod()> _
Public Shared Function SaveMyTextVar(ByVal textToSave As String) As Boolean
'' Save your variable to session here.
'' return true or false
'' you can capture the returning result in the AJAX that calls this method
End Function
不知道爲什麼你編輯你的問題?在編輯之前它似乎更合適:) – Darren 2013-05-14 14:44:31