允许在按下键后输入文本框
本文关键字:输入 文本 | 更新日期: 2023-09-27 18:03:32
我试图创建一个文本框,在keydown上执行c#函数,所以我订购了一个javascript函数来回发文本框的keydown事件,基本上,发生的事情是我在autopostback=true上的文本框和c#函数只有在点击框外时执行,因为autopostback,所以我想达到同样的目标,但没有点击外部,只有keydown。下面是我的代码:
<script language="javascript" type="text/javascript">
function RefreshBox()
{
__doPostBack('<%= SomeTextBox.ClientID%>', '');
}
<asp:TextBox ID="SomeTextBox" runat="server" onkeydown="RefreshQueryBox();"
AutoPostBack="True" ValidationGroup="1"
ontextchanged="AutoText_TextChanged" ViewStateMode="Enabled"></asp:TextBox>
这是。cs
protected void AutoText_TextChanged(object sender, EventArgs e)
{
// Some actions here
}
的问题是,这段代码在按下键时刷新整个页面,用户无法键入。的帮助!: P
谢谢
您的解决方案的问题在于,当您引起回复时,您实际上是在重新启动生命周期。这意味着你的数据也没有得到正确的保存。我建议使用ajax的web服务调用来完成您的操作。
function AutoText(){
$.ajax({
type: 'POST',
url: '../Services/UpdateService.asmx/AutoText',
data: '',
contentType: "application/json; charset=utf-8",
success: function (data) {
//use the data.d to get the info passed back from webservice. then
add your logic to update your html
},
error: function () {
//catch any bad data
}
});
}
你的后端方法应该是这样的。对象就是你的对象
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Object GetLatest()
{
Object obj= new Object ();
obj.FirstName = "Dave";
obj.LastName = "Ward";
return obj;
}
如果你正在做验证,我会建议jquery/javascript。虽然,你冒着别人不允许在他们的浏览器上使用javascript的风险,但你可以在服务器端卸载工作。