本人在做一个网上服装分销系统碰到一个问题if (this.IsPostBack==true  &&  == 0)
{
    执行代码
}
但是在==1时也会执行执行其中的代码,不知道怎么回事
我在窗口上有一个textbox(autopostback=true)一个dropdownlist一个button,在textbox中输入款号后自动要到数据库中找到该款所有的颜色加入dropdownlist,然后按button提交一条记录,但是现在,只要一按button,在dropdownlist中所选当前的选项就会丢失.上面的代码其实也是想实现在按button的时候不要更新dropdownlist,不知道各位有什么好点的解决之道吗

解决方案 »

  1.   

     =1肯定不会执行.2.textbox不到不得已不要用autopostback3.下拉框选项丢失可能是因为重新绑定了它.
      

  2.   

    我的代码
        protected void txtArtical_TextChanged(object sender, EventArgs e)
        {
            if (this.IsPostBack && Conn. == 0)
            {
                Response.Write(Conn..ToString());
                CboColor.Items.Clear();
                cboSize.Items.Clear();
                int a;
                Conn myConn = new Conn();
                DataSet Ds = new DataSet();
                if (txtArtical.Text.Length == 9)
                {
                    Ds = myConn.myResult("select  color from etamarticle where bar9='" + txtArtical.Text.Trim() + "' group by color");
                    if (Ds.Tables[0].Rows.Count > 0)
                    {
                        for (a = 0; a <= Ds.Tables[0].Rows.Count - 1; a++)
                        {
                            CboColor.Items.Add(new ListItem(Ds.Tables[0].Rows[a][0].ToString(), "0"));
                        }
                    }
                    Ds.Clear();
                    Ds = myConn.myResult("select  siz from etamarticle where bar9='" + txtArtical.Text.Trim() + "' group by siz");
                    if (Ds.Tables[0].Rows.Count > 0)
                    {
                        for (a = 0; a <= Ds.Tables[0].Rows.Count - 1; a++)
                        {
                            cboSize.Items.Add(new ListItem(Ds.Tables[0].Rows[a][0].ToString(), "0"));
                        }
                    }
                    Conn. = 1;
                }        }
        }
      

  3.   

    我必须用AUTOPOSTBACK,因为如果用户输入一个新的款号我必须到数据库中取相应的颜色和大小然后清空两个dropdownlist加入新的颜色和大小.否则出来的记录可能会不一致
      

  4.   

    对的是1   textbox.autopostback=true
      

  5.   

    这位仁兄你的代码有问题!protected void txtArtical_TextChanged(object sender, EventArgs e)事件用在这里又错误吧!
    用JavaScript写,在Text失去光标时处理!
      

  6.   

    有没有什么办法区分按button引起的postback和textbox引起的postback?
      

  7.   

    这样好像不行吧,刷新页面的时候Conn.的值会变为初始状态,根本不能存储值
      

  8.   

    我一开始是放在page_load里没用,就放在text_change里看看的
      

  9.   

    我觉得你最好用cookie之类的方法存储值,用变量的话刷新页面,变量值就又回到初始状态了
      

  10.   

    放在page_load里也不正确呀!你每次更改Text代码都要执行的!
      

  11.   

    放在page_load、text_change事一样
      

  12.   

    一开始我是声明一个int if (this.IsPostBack==true &&  == 0)
    {
    执行代码
    }
    但是==1 照样执行(我reaponse.write 出来是1)
      

  13.   

    没看懂为什么要有一个,更没看懂为什么=1(难道你存在ViewState中了?)。这个标记应该删除,否则你自己往牛角尖里钻了。按按钮的时候本不会调用txtArtical_TextChanged,你应该看看为什么文本内容被改变了。
      

  14.   

    你可以随意放一个按钮,先不要使用你原有的按钮,然后设置断点看一下,按这个测试按钮的时候txtArtical_TextChanged是绝对不应该被调用的。我注意到了TextBox有Autopostback属性,但是如果你没有改变文本内容,就不会触发这个事件。如果按这个测试按钮没有触发这个事件,就不会使得DropDownList的内容改变。这两个有一个不对,那么你有些最基本的东西就有错了。如果没有问题,再去检查你的按钮事件的代码。
      

  15.   

    如果你身边的同事百分之八十的人靠胡乱试验来摸着摸索使用asp.net,没有对机制的了解,那么你们的公司可能真的要考虑选择asp.net工具是否不适合你们的程序员。
      

  16.   

    sorry!!上面这段话发错了帖子。本来是要发到 http://community.csdn.net/Expert/topic/5310/5310236.xml?temp=.6989099
      

  17.   

    正如:xylys521() 所说,重启就好了,还是感谢大家的帮助