//前台:
<div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>//后台:
protected void Button1_Click(object sender, EventArgs e)
    {
        if (TextBox1.Text.Trim() == "")
        {
            MessageBox.Show(this, "请输入数据!");
        }
        else
        {
            MessageBox.ShowConfirm(Button1, "谢谢输入!");
        }
    }烦人问题:
1、第一次运行时textbox是空的,按逻辑这时我点button应该显示“请输入数据!”,但实际是我点了一万次都没有任何反应
2、即然没反应我就在textbox胡乱输入几个字符,但是点第一次还是没有反应,点第二次时才终于显示"谢谢输入",为什么为什么一定要点两次??
3、当我又把textbox的值清空时,怪事又来了,它居然还显示“谢谢输入”,难道它还记着吗,天啊,怎么回事啊,请各位帮忙看一看,第一次用VS2008的ASP.NET(C#)写东东,没想这么难啊!
(请大家把以上代码复制即可测试)

解决方案 »

  1.   

    向你要求的这种东西完全可以用javascript完成的...何必用控件?如果你消息不一定要弹出的话扔个label很简单... <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Label ID="Label1" runat="server"></asp:Label>
                    <br />
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                </ContentTemplate>
            </asp:UpdatePanel>if (TextBox1.Text.Trim() == "")
            {
                
                Label1.Text = "请输入数据!";
            }
            else
            {
                
                Label1.Text = "谢谢输入!";
            }
      

  2.   

    messagebox.show() 
    是winForm里的东东; 
      你现在做的的WebForm;
    ajax不支持弹出窗口,用label吧