日期:2014-05-19  浏览次数:20380 次

请问各位我为什么得不到TextBox的值
using   System;
using   System.Data;
using   System.Configuration;
using   System.Collections;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;

public   partial   class   Interaction_chat   :   System.Web.UI.Page
{
        protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                chatName.Focus();
                chatName.Text   =   Session[ "chat_name "].ToString();
        }
        protected   void   ImageButton1_Click(object   sender,   ImageClickEventArgs   e)
        {
                string   test   =   chatName.Text.Trim();
                if   (test   !=   " ")
                {
                        Session[ "chat_name "]   =   chatName.Text.Trim();
                        Response.Redirect( "chat_frame.aspx ");
                        return;
                }
        }
}


------解决方案--------------------
IsMyJava () 你的程序我已经运行过,可以得到值,如果还是有问题,请再多帖些代码
------解决方案--------------------
我也碰到国类似的问题,我是这样子解决的!
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Interaction_chat : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) /*********加上这句试试*********/
{
chatName.Focus();
chatName.Text = Session[ "chat_name "].ToString();
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
string test = chatName.Text.Trim();
if (test != " ")
{
Session[ "chat_name "] = chatName.Text.Trim();
Response.Redirect( "chat_frame.aspx ");
return;
}
}
}

------解决方案--------------------
逻辑错误.
1. 如果session为空,会把TextBox置为空.
2. 如果TextBox为空则Session为空

解决方案
在pageLoad里面加上ispostBack判断.
------解决方案--------------------
问题分析:
  PageLoad 方法是每次页面回传时都要调用的方法,并且是先于其它任何控件事件方法被调用的,所以,不管怎么在 TextBox 框里输入内容,到了服务器端,你的 TextBox 里的值都被
chatName.Text = Session[ "chat_name "].ToString();
这句操作给覆盖了,你可以调试时试下,在这句话之前看看,你的 TextBox 里的值是不是你在客户端输入的值。

问题解决:
bakers 的方法不错,这种问题一般是用 Page.IsPostBack 来解决的,不过你应