我知道这是一个经典错误。我试图理解错误,不幸的是我不能。我也做了谷歌搜索,其中大部分是用C#而不是用VB编写的。
我要做的是创建一个数字文本框,输入的数字将自动转换为货币格式。
输入:1000
OUTPUT显示:1,000
我的项目只有以下2个文件。
1。 text.aspx
<%@ Page Language="vb" src="cls/NumericTextbox.aspx.vb" AutoEventWireup="false" inherits="daisystory.com.NumericTextBox" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<form id="form1" runat="server">
<asp:TextBox id="mytext" text="1000" onKeyPress="ValidateNumeric()" runat="server" />
</form>
</body>
</html>
2。 NumericTextbox.aspx.vb
Imports System
Imports System.Web.UI
Imports System.Web.UI.Page
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Namespace daisystory.com
Public Class NumericTextBox
Inherits TextBox
Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
Attributes.Add("onKeyPress", "ValidateNumeric()")
If Not (Page.IsClientScriptBlockRegistered("ValidateNumericScript")) Then
Page.RegisterClientScriptBlock("ValidateNumericScript", "<script language='javascript'>" & chr(13) & _
"function ValidateNumeric(){" & chr(13) & _
"var keyCode = window.event.keyCode;" & chr(13) & _
"if (keyCode > 57 || keyCode < 48)" & chr(13) & _
"window.event.returnValue = false;}" & chr(13) & _
"</" & _
"script>")
End If
MyBase.OnPreRender(e)
End Sub
public overrides Property Text As String
Get
return(MyBase.Text)
End Get
Set
MyBase.Text = Convert.ToInt32(value).ToString()
End Set
End Property
End Class
End Namespace
AND HERE是错误: -
Parser Error Message: 'daisystory.com.NumericTextBox' is not allowed here because it does not extend class 'System.Web.UI.Page'.
Source Error:
Line 1: <%@ Page Language="vb" src="cls/NumericTextbox.aspx.vb" AutoEventWireup="false"inherits="daisystory.com.NumericTextBox" %>
我该怎么办? 非常感谢您的帮助!!!
答案 0 :(得分:0)
您的页面不是您要扩展的内容。您想要一个扩展的控件。该页面应该是一个普通的aspx页面文件,其中包含registration for the new user control而不是asp:textbox,您可以将新控件放入其中。