c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Result : System.Web.UI.Page
{
   
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string firstname = ((TextBox)PreviousPage.FindControl("TextBoxFirstname")).Text;
            LabeResult.Text = firstname;
        }
        catch{ }
       
    }
}
书上的例子,运行时总是不成功。现象是,result页面的标签没有变化。按照书上的代码完全一样也是这种情况?请高手解答。

解决方案 »

  1.   

    你先要给TextBoxFirstname这个TextBox一个初始值啊,再在加载时才能有值啊
      

  2.   

    不要用try catch,然后调试,看看firstname 是否有值?
      

  3.   

    try
      {
      string firstname = ((TextBox)PreviousPage.FindControl("TextBoxFirstname")).Text;
      LabeResult.Text = firstname;
      }
      catch(Exception ex){LabeResult.Text =ex.ToString(); }
      

  4.   

    1 TextBox的Name是否是TextBoxFirstname?
    2 TextBox是Text属性值是否为空?
      

  5.   

    嗯。去掉try catch,调试下就OK了。估计FindControl("TextBoxFirstname") 没找到吧。
      

  6.   

    这个是书上的用来读取defult.aspx页面上的ID=TextBoxFirstname中的文本的,初值什么的不是应该在运行调试后从页面上输入嘛?
      

  7.   

    按照书上的方法为什么会没有找到呢?
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Btn_sbumit_Click(object sender, EventArgs e)
        {    }
    }
    这是defult.cs的代码。
      

  8.   

    没有name属性啊。只有ID嘛,把它设为TextBoxFirstname不就行了嘛?还有text属性必须要有值嘛?为什么给它填了Firstname也不成功呢?
      

  9.   

    在load事件中 ,让label显示文本框id为TextBoxFirstname的text,但文本框本身的text是空的,所以
    label当然不会发生变化,是你的事件写错了,不应该在load事件中写
      

  10.   

    在 Button_click中, 或者是textbox_change 事件中
    就是点击事件或者是文本的更改事件中
      

  11.   

    Page_Load 是页面初始化事件。。你如果一开始没有给控件默认值。。如何取得值。。
      string firstname = ((TextBox)PreviousPage.FindControl("TextBoxFirstname")).Text;
      LabeResult.Text = firstname;
    TextBoxFirstname需要有值
      

  12.   

    那我从页面中输入的字符串不是赋给TextBoxFirstname.text的嘛?要是是的话还必须要给它的text属性设置初始值嘛?而且我也试着给它赋了初始值,还是会出现那个错误哎。
      

  13.   

    感觉问题不是出在Result页上,看下LZ的Default页是怎么跳转到Result页上的。
      

  14.   

    protected void Page_Load(object sender, EventArgs e)
    {
       if(!Page.IsPostBack)
       {
          //your code bellow here...
       }
    }
      

  15.   

    你加这个判断就代表有可能page.ispostback为真也有可能为假了。假如defult.aspx页submit按钮的postbackurl属性设这的是result.aspx那么还有可能不成功嘛?这个不是一定能成功的嘛?书上就是这么做的啊。
      

  16.   

    给defult.aspx上的submit按钮的postbackurl属性设置成result.aspx来实现页面的跳转啊。书上就是这么说的嘛。可是,结果很悲催。我都快对c#绝望了。首先开始怀疑它能不能做网站,其次怀疑书上的代码都不能执行,这是什么书啊。
      

  17.   


    首先,用来设计网站的是ASP或ASP.NET,C#是一种程序设计语言(就像C/C++与MFC的关系一样)。学程序设计的最好别把这几个概念搞混了。其次,ASP.NET设计网页还是很好用的。然而,可悲的是LZ写的例子在本人这里很轻松就运行成功了,而且结果也和期望的一样。现在只有LZ去捕捉异常看看是出什么异常了才没有执行LabeResult.Text = firstname;这句(捕捉异常的方法参照3L的代码)。PS:虽然觉得可能性不大但还是确认下吧,LZ是不是没往TextBoxFirstname里填写东西就直接按Button跳转了?