为什么我这个跨网页传递一直报错!未将对象实例化??

bkbkok 2014-11-20 09:38:36
第一个页面
<tr><td>用户名:</td><td class="style1">
<asp:TextBox ID="TextBox1" runat="server" Width="272px" Font-Size="Large"></asp:TextBox>
</td>
<td><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1"
ErrorMessage="用户姓名不能为空" Font-Size="Medium" ForeColor="red"></asp:RequiredFieldValidator></td>
</tr>
<tr><td><asp:Button ID="Button1" runat="server" Text="提交" PostBackUrl="~/Default3.aspx" onclick="Button1_Click" /></td></tr>
第二页面CS
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage.IsCrossPagePostBack == true)
{
TextBox TextBox1 = (TextBox)PreviousPage.FindControl("TextBox1");
Username.Text += "用户名:" + TextBox1.Text;
}
}
}
前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<%@ PreviousPageType VirtualPath="~/Default2.aspx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<caption><font style="display:block; text-align:center" color="DodgerBlue" size="6" face="微软雅黑">信息预览页面</font></caption>
<table class="tb">
<tr> <td> <asp:Label ID="Username" runat="server" Font-Size="Large"></asp:Label></td></tr>



</div>
</form>
</body>
</html>


...全文
277 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
insus 2014-11-21
  • 打赏
  • 举报
回复
刚刚再次测试,与查看MSDN,你只能在html写PostBackurl属性,在OnClick事件中不必写任何代码!!!
insus 2014-11-21
  • 打赏
  • 举报
回复
你最先帖出来的代码,没有On_Click事件的程序。
昨晚Insus.NET测试时,是在On_Click事件保留为空。

真正出问题是你使用了Response.Redirect()方法。
这个方法与PostBackUrl完全不一样。
比如你迷路了,你问路,前者他只会用手指给你方向一指,在那边;而者是,他带你一起目的地。

既然你有在html有写
asp:Button ID="Button1" runat="server" Text="提交" PostBackUrl="~/Default13.aspx"了,OnClick事件就不必再写了。
如果你想写OnClick事件,建议把html的PostBackUrl="~/Default13.aspx"删除。在OnClick事件就可以写改为:


其实两个保留也没有问题,因为当你有写onclick事件,程序均是先跑onclick事件。


insus 2014-11-21
  • 打赏
  • 举报
回复
Insus.NET刚刚用了很长一个篇幅写了一个演示,你有这个问题,完全可以从这个演示中,参考到一些知识: 任何一位网友均可以前往,看看程序是如何解藕合的。 《还贷的人是谁? 管他是父亲还是儿子,把钱还回来就行http://www.cnblogs.com/insus/p/4112209.html
bkbkok 2014-11-20
  • 打赏
  • 举报
回复
引用 7 楼 bkbkok 的回复:
[quote=引用 6 楼 insus 的回复:] 测试你的代码,是可以正确运行的:
谢谢这位老师啊!~~会不会是我第一个页面重叠了太多东西的原因?[/quote] 老师,我找到错误了! 你看见我页面1里BOTTON1里的On_Click属性了吧,里面是这样定义的: protected void Button1_Click(object sender, EventArgs e) { Response.Redirect("Default3.aspx"); } 这样的话按钮1就会既有PostBackUrl="~/Default3.aspx也有 Response.Redirect("Default3.aspx");功能, 这样就会导致我所说的问题,请问老师这是为什么啊?我是初学的学生,谢谢~~
bkbkok 2014-11-20
  • 打赏
  • 举报
回复
引用 6 楼 insus 的回复:
测试你的代码,是可以正确运行的:
谢谢这位老师啊!~~会不会是我第一个页面重叠了太多东西的原因?
insus 2014-11-20
  • 打赏
  • 举报
回复
测试你的代码,是可以正确运行的:
bkbkok 2014-11-20
  • 打赏
  • 举报
回复
引用 3 楼 slwsss 的回复:
[quote=引用 2 楼 bkbkok 的回复:] 什么呀,那个TEXTBOX1在第一个页面里的,这是标准格式啊
你是用第二个页面获取TEXTBOX1的吧,第二个页面没有TEXTBOX1[/quote] 不需要有啊,第二个页面只要有个ID为Username的Label就可以了
insus 2014-11-20
  • 打赏
  • 举报
回复
slwsss 2014-11-20
  • 打赏
  • 举报
回复
引用 2 楼 bkbkok 的回复:
什么呀,那个TEXTBOX1在第一个页面里的,这是标准格式啊
你是用第二个页面获取TEXTBOX1的吧,第二个页面没有TEXTBOX1
bkbkok 2014-11-20
  • 打赏
  • 举报
回复
什么呀,那个TEXTBOX1在第一个页面里的,这是标准格式啊
slwsss 2014-11-20
  • 打赏
  • 举报
回复
第二页面没有TextBox1,用Request接收第一页传过来的值

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧