相同的程序代码,只是开头多加个<%@page%>却出错,为什么??
程序1:
<html>
<head>
<script language="VB" runat="server">
Sub ValidateBtn_Click(sender As Object, e As EventArgs)
If (Page.IsValid) Then
lblOutput.Text = "页面有效!"
Else
lblOutput.Text = "在页面中不能出现空项!"
End If
'判断是否输入为数字
if not isnumeric(TextBox1.text) then
lbloutput.text="请输入数值!"
End if
End Sub
</script>
</head>
<body>
<center><h3><font face="Verdana">验证表单的例子</font></h3></center>
<p>
<form runat="server">
<title>表单验证</title>
<center>
<table bgcolor="white" cellpadding=10>
<tr valign="top">
<td colspan=3>
<asp:Label ID="lblOutput" Text="请填写下面的内容" ForeColor="red" Font-Name="Verdana" Font-Size="10" runat=server /><br>
</td>
</tr>
<tr>
<td align=right>
<font face=Verdana size=2>储蓄卡类型:</font>
</td>
<td>
<ASP:RadioButtonList id=RadioButtonList1 RepeatLayout="Flow" runat=server>
<asp:ListItem>绿卡</asp:ListItem>
<asp:ListItem>牡丹卡</asp:ListItem>
</ASP:RadioButtonList>
</td>
<td align=middle rowspan=1>
<asp:RequiredFieldValidator id="RequiredFieldValidator1"
ControlToValidate="RadioButtonList1"
Display="Static"
InitialValue="" Width="100%" runat=server>
*
</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align=right>
<font face=Verdana size=2>卡号:</font>
</td>
<td>
<ASP:TextBox id=TextBox1 runat=server />
</td>
<td>
<asp:RequiredFieldValidator id="RequiredFieldValidator2"
ControlToValidate="TextBox1"
Display="Static"
Width="100%" runat=server>
*
</asp:RequiredFieldValidator>
</td>
</tr>
<td>
</tr>
<tr>
<td></td>
<td>
<ASP:Button id=Button1 text="验证" OnClick="ValidateBtn_Click" runat=server />
</td>
<td></td>
</tr>
</table>
</center>
</form>
</body>
</html>
程序2:
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>
程序1代码拷贝在其后。
这两个文件运行,程序1正确,程序2出错,但我仔细查了一下,程序2只比程序1多了<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>这一行,但这一行没什么错误啊,为什么加了就整个页面执行就出错呢??
问题点数:100、回复次数:13Top
1 楼islenet(isle)回复于 2003-12-02 19:05:00 得分 0
错误代码贴出来看看Top
2 楼xrll()回复于 2003-12-02 19:08:36 得分 0
我试过,正常啊!Top
3 楼bobjeey(三十年河东,三十年河西)回复于 2003-12-02 19:18:45 得分 0
呵呵
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>
没有这句页面评什么去解释
<script language="VB" runat="server">
Sub ValidateBtn_Click(sender As Object, e As EventArgs)
If (Page.IsValid) Then
lblOutput.Text = "页面有效!"
Else
.....
要么你就把
Sub ValidateBtn_Click(sender As Object, e As EventArgs)
If (Page.IsValid) Then
lblOutput.Text = "页面有效!"
Else
....
放到服务器端编译运行
就可以不需要上面那句
带又需要另一句,就是解析页面的dll说明。Top
4 楼kwklover(随风)回复于 2003-12-02 20:03:36 得分 20
我也试过
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>
这个会出错,但是我把ResponseEncoding="gb2312"的gb2312改成UTF-8或UTF-16
哈哈,竟然没有错误了,不过不明白为什么
我个人推测可能是asp.net在页面中输出的viewstate信息是经过编码的,用gb2312可能是不能正常输出这种编码吧(~~~个人想法,不一定正确,欢迎大家指正!)Top
5 楼redbb(....DB & DEV....抵制日货,人人有责...)回复于 2003-12-02 20:50:03 得分 0
modify your IE 's view - decoding - gb2312Top
6 楼sjinli(小石子)回复于 2003-12-03 10:05:33 得分 0
建议你看看微软出的《asp.net程序设计》有关于这方面的东西,很好的!Top
7 楼AmaomaoA()回复于 2003-12-03 10:27:50 得分 0
试过了,一切正常Top
8 楼guoting(紫罗兰)回复于 2003-12-03 15:56:04 得分 0
运行时倒没有出错,但是运行的结果不对啊!如我在两个框中输入符合条件的数据,提交后第一个框中的输入没有,却有提示:在页面中不能出现空项!。真的很奇怪!Top
9 楼guoting(紫罗兰)回复于 2003-12-03 15:58:52 得分 0
用kwklover(随风) 的方法居然真的运行正确,但是有时出现乱码啊!(我的IE的编码设的是gb2312)Top
10 楼kwklover(随风)回复于 2003-12-03 23:22:43 得分 0
to:guoting (紫罗兰)
我希望你不要那么早结贴,等待高手出手指教,我很希望知道为什么!Top
11 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2003-12-03 23:47:59 得分 80
因为asp.net中默认的请求和响应编码都是utf-8,如果你用Page指令指定了请求编码为gb2312而没有在web.config中指定响应编码也为gb2312,将导致页面无法正确接收回传的数据,因此会出现上面的问题,解决方法是在web.config的<system.web>配置节中加入
<globalization responseEncoding="gb2312" requestEncoding="gb2312"/>即可。Top
12 楼kwklover(随风)回复于 2003-12-04 00:03:37 得分 0
to:webdiyer(陕北吴旗娃)
终于明白为什么了,非常感谢Top
13 楼guoting(紫罗兰)回复于 2003-12-09 09:45:50 得分 0
谢谢webdiyer(陕北吴旗娃) !Top




