当前位置: 代码迷 >> ASP.NET >> 请教各位小弟我为什么得不到TextBox的值
  详细解决方案

请教各位小弟我为什么得不到TextBox的值

热度:2762   发布时间:2013-02-26 00:00:00.0
请问各位我为什么得不到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 来解决的,不过你应该根据自己的程序逻辑来做出选择。
  相关解决方案