请问我以下的代码出了什么问题???其中:当TextBox1中的文本值,如果直接赋值"aa",则单击Button1可以执行;如果是在运行后,在文本框输入"aa",则单击Button1执行不了。请问是为什么???帮忙修改修改。
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
Button1.Attributes.Add("OnClick",a());
}
// 在此处放置用户代码以初始化页面
}private string a()
{
string path;
if (this.TextBox1.Text == "aa")
{
path="javascript:window.open('webform2.aspx');";
}
else path="";
return path;
}private void Button1_Click(object sender, System.EventArgs e)
{
}

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    }Button1.Attributes.Add("OnClick",a()); // 在此处放置用户代码以初始化页面
    }
      

  2.   

    !Page.IsPostBack是判断页面是否第一次加载,如果是第一次,就会执行大括号中语句,否则跳过,所以,就出现了你说的问题了
      

  3.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    Button1.Attributes.Add("OnClick",a());
    }
    // 在此处放置用户代码以初始化页面
    }
    改成
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {

    }
             Button1.Attributes.Add("OnClick",a());
    // 在此处放置用户代码以初始化页面
    }
      

  4.   

    <script language="javascript">
    fuction a()
    {
       with(document.Form1)
    if(TextBox1.Text == "aa")
    {
    window.open('webform2.aspx');
                        }
    }
    </script>
      

  5.   

    <script language="javascript">
    fuction a()
    {
       with(document.Form1)
    if(TextBox1.Text == "aa")
    {
    window.open("webform2.aspx");
                        }
    }
    </script>
      

  6.   

    在实现上述功能后,以下这种做法为什么要双击才跳转呢?能不能改为单击。
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    }Button1.Attributes.Add("OnClick",a()); // 在此处放置用户代码以初始化页面
    }