对Textbox onblur事件执行数据库查询
我正在使用带有C#的asp.net 3.5。 当用户在txtProductID中输入ProductID时,我需要进行数据库查找。 我想做javascript是不可能的,因为这将是服务器端调用。 我在网页的page_load事件中写了这段代码:
protected void Page_Load(object sender, EventArgs e) { txtProductID.Attributes.Add("onblur", "LookupProduct()"); } protected void LookupProduct() { //Lookup Product information on onBlur event; }
我收到一条错误消息:Microsoft JScript运行时错误:预期的对象如何解决此问题?
使用TextBox.TextChanged事件。
ASPX标记:
代码隐藏:
protected void txtProductID_TextChanged(object sender, EventArgs e) { // do your database query here }
onblur
是一个客户端事件。 LookupProduct
是一种服务器端方法。 你不能从另一个中引用一个 – 两者之间根本没有任何关联。
没有快速解决方法 – 你必须在客户端事件上触发回发(使用ClientScriptManager.GetPostBackEventReference
)或使用像Microsoft ASP.NET Ajax这样的库实现Ajax回调。
或者,如果您不需要在每次模糊时触发此事件,并且仅在文本更改时 ,则可以简单地使用服务器端TextBox.OnChanged
事件并将TextBox的AutoPostBack
属性设置为true
。 确保你记得设置AutoPostBack
,否则这不会让你到任何地方。
这应该可行,如下所述: http : //www.codedigest.com/CodeDigest/80-Calling-a-Serverside-Method-from-JavaScript-in-ASP-Net-AJAX—PageMethods.aspx
这些是控件
这是Javascript
这是服务器sidewebmethod
[WebMethod] public static bool LookupProduct() { return true; }