[ aspx代码:]
<form id="schProdNumId" method="post" runat="server">
  <asp:dropdownlist id="d1" autopostback="True" runat="server"></asp:dropdownlist>
  <asp:dropdownlist id="d2" runat="server"></asp:dropdownlist>
</form>
[ cs代码: ]
public class schProdNumId : System.Web.UI.Page
{
   protected System.Web.UI.WebControls.DropDownList d1;
   protected System.Web.UI.WebControls.DropDownList d2;
   protected ArrayList arrLi;
   private string dsn;
   private SqlConnection conn;

   private void Page_Load(object sender, System.EventArgs e)
  {
      dsn=System.Configuration.ConfigurationSettings.AppSettings["dsn"];
      conn=new SqlConnection(dsn);
  
      if(!Page.IsPostBack){
         BindD1();
      }
   }
  //获取数据源
  protected ArrayList GetSource(){
      DataSet ds=new DataSet();
      string sql="select createTime from prodNum";
      SqlDataAdapter comd=new SqlDataAdapter(sql,conn);
      comd.Fill(ds,"createTiem");
   
      DataTable dt=ds.Tables[0];
      ArrayList li=new ArrayList();  
      for(int i=0;i<dt.Rows.Count;i++){  //过滤重复数据
          string val=dt.Rows[i]["createTime"].ToString().Trim();
          if(!li.Contains(val)){
              li.Add(val) ;
           }
       }
       return li;
  }
  //绑定dateFrom
  void BindD1(){
       arrLi=GetSource();
       d1.DataSource=arrLi;
       d1.DataBind();  }//自动注册的事件
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
  //
  // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  //
  InitializeComponent();
  base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.d1.SelectedIndexChanged += new System.EventHandler(this.d1_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion   ///下拉菜单改变事件///   private void d1_SelectedIndexChanged(object sender, System.EventArgs e) {
       Response.Write("<script language=javascript>alert('changed event ok');</script>");
   }..................
[ 错误提示 ]当我改变下拉菜单时,没有触发d1_SelectedIndexChanged()事件!
前台提示的错误是javascript错误:对象不支持此属性或方法!!!!!!!
我晕倒,为什么不能触发selectedIndexChanged事件呢?没理由啊
希望解决问题,不要灌水,我很急,谢谢帮助

解决方案 »

  1.   

    事件已经出发了 只是你的javascript有错误。
      

  2.   

    你確認是沒有觸發這事件嗎?改成RESPOSNE.WRITE("AAA")試試
      

  3.   

    Response.Write("<script language=javascript>alert('changed event ok');</script>");---〉Page.RegistStartupScript("alert","<script language=javascript>alert('changed event ok');</script>");
    试一下。
      

  4.   

    看来是vs2002的错误了,程序没错的,不是Response.Write("<script>alert('changed event ok');</script>");的问题我所以很奇怪啊,找不到原因
      

  5.   

    我从原文件中找到错误代码所在行,谁知道是怎么回事??<script language="javascript">
    <!--
    function __doPostBack(eventTarget, eventArgument) {
    var theform = document.schProdNumId;
    theform.__EVENTTARGET.value = eventTarget;
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
    }
    // -->
    </script>
      

  6.   

    这个很可能是由智能导航引起的,楼主如果有加智能导航建议去掉。
    如果不行可以重新注册一下 aspnet_regiis /i
      

  7.   

    change
    private void d1_SelectedIndexChanged(object sender, System.EventArgs e) {
           Response.Write("<script language=javascript>alert('changed event ok');</script>");
       }
    to
    private void d1_SelectedIndexChanged(object sender, System.EventArgs e) {
           Page.RegistStartScript("<script language=javascript>window.alert('changed event ok');</script>");
       }
      

  8.   

    我说过了,不是Response.Write("<script></script>")的问题,就是改成Response.Write("aa");也没用的,也是同样的错误
      

  9.   

    如果你知道代码的错误在上面你说的那段js代码里面,那么你可以调试一下到底是那个对象出错了!那段js是.NET自动产生的,请使用js脚本调试器看看错误到底在哪里!
      

  10.   

    仔细对照一下,你的页面生成的 _dopostback函数和我的页面生成的函数,也许能找到问题
    <script language="javascript">
    <!--
    function __doPostBack(eventTarget, eventArgument) {
    var theform;
    if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
    theform = document.forms["Form1"];
    }
    else {
    theform = document.Form1;
    }
    theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
    }
    // -->
    </script>
    你的页面是自己写的,还是用VS2002生成的呢?
      

  11.   

    先不写javascript 语句,
    写其他C# 语句看事件是否触发,
    如果触发问题出在javascript 语句上,
    如果没触发就看如何让它触发.
      

  12.   

    吐血~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    狂吐~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    原来是一个按钮的问题!!!!!!!!!!<asp:textbox id="submit" runat="server"/>
    把id号码改成其他的就OK了,没想到textbox 不能用submit做ID号码的
    这是什么原因啊
      

  13.   

    ............
    也许theform.submit不能被区别为是form的控件还是他的submit方法吧