ライブ検索機能を備えたテキストボックスがあります。1つの問題を除いて、すべて正常に機能しています。その上に文字を入力すると、フォーカスが失われます。textbox.Focus() を設定すると、カーソルはテキストボックスの先頭に移動します。
私はインターネット上のほとんどのソリューションを試しました。以下のコードを確認してください。
asp:TextBox ID="searchCompany" runat="server" Text="" CssClass="searchCompany" AutoPostBack="true" Width="190px" OnTextChanged="searchCompany_TextChanged"></asp:TextBox>
page_Load 内
protected void Page_Load(object sender, EventArgs e)
{
//ScriptManager1.RegisterAsyncPostBackControl(Menu1);
menuDisplay();
searchCompany.Attributes.Add("onkeyup", "setTimeout('__doPostBack(\\'" + searchCompany.UniqueID + "\\',\\'\\')', 0);");
//searchCompany.Attributes.Add("onfocus", "javascript:setSelectionRange('" + "','')");
//searchCompany.Focus();
}
そして、私は以下のようにjavascriptを試しました
<script type="text/javascript">
function setSelectionRange() {
var inputField = document.getElementById('searchCompany');
if (inputField != null && inputField.value.length > 0) {
if (inputField.createTextRange) {
var FieldRange = inputField.createTextRange();
FieldRange.moveStart('character',inputField.value.length);
FieldRange.collapse();
FieldRange.select();
}
}
}
</script>
ユーザーが毎回テキストボックスに文字を入力すると呼び出されるメソッド「searchCompany_TextChanged」にコードを配置しようとしましたが、同様に機能しません。
Textbox.Select() を使用して他のソリューションを見ましたが、System.Windows.Control は asp.net で動作していないと思います。
何か案が??