我是一个新手,正在用vb.net做一个网络软件。其中TextBox_TextChanged事件触发的同时触发DropDownList_SelectedIndexChanged事件。也就是改变TextBox1的内容然后用鼠标点击DropDownList1这时页面出现意外错误。把DropDownList1的AutoPostBack属性设为False就不会出现错误。可是SelectedIndexChanged事件又不能触发。我新开了一个工程测试了一下并不出现错误。同事说当页面内容比较多的时候同时触发这两个事件会产生错误。不知道是不是这个原因啊?我想在触发DropDownList1_SelectedIndexChanged事件时让TextBox2.text=DropDownList1.SelectedItem.Text请问有别的方法实现么?

解决方案 »

  1.   

    将textbox的TextBox_TextChanged事件去掉,将要实现的功能写一个函数在dropdownlist的DropDownList_SelectedIndexChanged事件中调用此函数
      

  2.   

    把出发的函数一起调用就可以了!不过要放到一个函数中阿!一起用
    比如放在一个buttion的click事件中就行了!
    首先要单独写好这两个函数阿!
      

  3.   

    谢谢大家,这个问题已经解决了。我把把DropDownList1的AutoPostBack属性设为False,在html里给DropDownList1加了一个onchange="change()"再写一个函数就ok了.
     function change()
       { 
          var str
          str =window.document.Form1.DropDownList1.options[Form1.ddlProduct.selectedIndex].value;
          window.document.Form1.TextBox1.value=str;
        }
      

  4.   

    对,这种方式最好在客户端做,尤其像TextBox的,一改变内容就提交,太浪费网络资源了
      

  5.   

    呵呵..基本的验证和处理事件的功能都可以在客户端用JS搞的..这样的程序才能算的上是合格的web应用
      

  6.   

    除非特意设置textbox的autopostback为true(不过至今我还没有看见过这样做的程序),否则改变文本内容并不会立刻触发 textchanged 事件。当你选择dropdownlist的一项(此autopostback=true),这时候 textchanged 和 selectedindexchanged 顺次“同时”触发,这很正常。你的问题肯定出在script写的有问题。把dropdownlist的autopostback设置为false,那么在叶面其他地方引起提交到服务器的时候,textchanged和selectindexchanged也顺次“同时”出发,你完全可以在dropdownlist的那个事件中捕获值,完全没必要还搞什么change()脚本函数。
      

  7.   

    楼主也可以在后台的“DropDownList1_SelectedIndexChanged”事件中加入:
    TextBox1.Text=DropDownList1.SelectedItem.Text; 
    实现呀。