【发布时间】:2018-07-09 10:18:16
【问题描述】:
我有一个 aspx.page,此 TextBox 位于其中。
<asp:TextBox ID="txtPolicyNumber" runat="server" AutoPostBack="true" Width="90px" OnTextChanged="txtPolicyNumber_OnBlur"></asp:TextBox>
每次我点击这个文本框,输入一些东西然后点击离开(失去焦点)我希望这个方法能够执行。
VB.NET
Private Sub txtPolicyNumber_OnBlur(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPolicyNumber.TextChanged
txtPlanCode.Text = Company.Applications.ProductionEngine.BusinessAccess.ManualAdjustmentsBusinessAccess.GetPlanCode(txtPolicyNumber.Text)
End Sub
这个方法基本上是调用一个 ExecuteScalar 并从数据库中返回一个值。
SQL
SELECT PolicyPlanCode
FROM bo.PolicyTransactions
WHERE PolicyNumber = @policyNumber
AND PolicyTransactionRowNumberAsc = 1
txtPolicyNumber 保存作为参数@policyNumber 传入的值。
我一加载页面就会出现这个错误。
编译器错误消息:BC30456:“txtPolicyNumber_OnBlur”不是“ASP.reporting_manualadjustments_aspx”的成员
我需要做的是当 txtPolicyNumber 失去焦点时,应该调用 txtPolicyNumber_OnBlur 并且 Sub txtPolicyNumber_OnBlur() 的结果应该出现在 txtPlanCode.Text 文本框中。
关于为什么会出现此错误的任何想法?很高兴做出任何进一步的澄清。
【问题讨论】:
-
浏览器只能说找不到 txtPolicyNumber_OnBlur javascript 函数。此函数是否位于页面上和脚本块中?查看 F12 工具以查看返回的 DOM,以验证客户端上是否存在该函数。
-
如果您希望执行一个 VB 方法,那么您必须回发到服务器。您拥有的 ASP.NET 代码指定了一个 JavaScript 函数来执行客户端,而不是一个 VB 函数来执行服务器端。
-
我更喜欢执行 VB 方法,但我尝试在文本框失去焦点时为其创建一个事件,但这也不起作用。我已经用那部分代码更新了代码。
-
您正在使用浏览器的 javascript onblur 事件来调用服务器的 vb.net 函数。一种语言与另一种语言不兼容。
-
用我当前的代码更新了帖子。
标签: asp.net sql-server vb.net onblur