我有两个webform,一个是JournaL Book.aspx,另一个是Journal Entry.aspx。 webform JournaL Book.aspx包含一个图像按钮,即imgbtnentry和textbox即txtjournalname.And webform Journal Entry.aspx包含标签,即lbljournalbookname。在这里,我试图显示我输入到文本框中的任何文本,即在另一页中的lbljournalbookname中的txtjournalname,即按钮单击时的Journal Entry.aspx,如果我没有在文本框中输入任何内容,标签文本应该是无标题日记。所以问题是,无论我在标签文本中显示的文本框中输入,但是当我没有输入任何标签文本时,标签文本中没有任何标记为无标题日记。
按钮后面的代码,即Journal Book.aspx中的imgbtnentry
protected void imgbtnentry_Click(object sender, ImageClickEventArgs e)
{
if (txtjournalname.Text != null)
{
Session["JournalBookName"] = txtjournalname.Text;
Response.Redirect("Journal Entry.aspx");
}
else
{
Session["JournalBookName"] ="Untitled Journal";
Response.Redirect("Journal Entry.aspx");
}
}
Journal Entry.aspx中的页面加载代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lbljournalbookname.Text = Session["JournalBookName"].ToString();
}
}
答案 0 :(得分:2)
TextBox.Text
永远不会返回null,所以这是毫无意义的:
if (txtjournalname.Text != null)
{
// ....
}
因为即使您明确指定TextBox.Text
,null
也会返回一个空字符串。
所以使用这个:
if (!String.IsNullOrEmpty(txtjournalname.Text))
{
Session["JournalBookName"] = txtjournalname.Text;
Response.Redirect("Journal Entry.aspx");
}
else
{
Session["JournalBookName"] ="Untitled Journal";
Response.Redirect("Journal Entry.aspx");
}
顺便说一句,这不仅仅是一个ASP.NET的东西,即使所有的winforms控件都有相同的行为。 Source of Control.Text