後,我能夠使用這個代碼把重點放在文本回傳後:設置在文本光標位置回傳
ScriptManager.RegisterStartupScript(textBox, textBox.GetType(), "selectAndFocus", "$get('" + textBox.ClientID + "').focus();", true);
但這種設置光標位置到文本的開始,而不是在最後一個輸入的字符。我試圖通過使用此代碼來解決此問題:
textBox.Attributes.Add("onfocus", "$get('" + textBox.ClientID + "').value = $get('" + textBox.ClientID + "').value;");
但是這並不奏效。與以前相同的結果。 我該如何解決這個問題?
我讀過大量的鏈接,this看起來像最好的解決方案,但我一直沒有得到它的工作。
更新:忘了提及該文本框駐留在一個updatepanel內。
UPDATE2,嘗試性解決方案:
string setCaretTo = @"function setCaretTo(obj, pos) {
if(obj.createTextRange) {
/* Create a TextRange, set the internal pointer to
a specified position and show the cursor at this
position
*/
var range = obj.createTextRange();
range.move('character', pos);
range.select();
} else if(obj.selectionStart) {
/* Gecko is a little bit shorter on that. Simply
focus the element and set the selection to a
specified position
*/
obj.focus();
obj.setSelectionRange(pos, pos);
}
}";
ScriptManager.RegisterClientScriptBlock(//anotherunrelated script);
ScriptManager.RegisterClientScriptBlock(textBox, textBox.GetType(), "MyScript", setCaretTo, true);
ScriptManager.RegisterStartupScript(textBox, textBox.GetType(), "MyStartupScript", "window.onload = function() {obj = window.document.getElementById('"+textBox.ClientID+"');setCaretTo(obj, obj.getAttribute('value').length);}", true);`
th selectandFocus函數在哪裏?你能幫我提供一下嗎? – 2012-07-25 12:40:46