我有一个带有实时搜索功能的文本框。除了一个问题,一切都很好。如果我在上面输入任何字符,它就会失去焦点。如果我设置 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 中不起作用。
任何的想法??