当前位置:编程学习 > C#/ASP.NET >>

dropdownlist onchange事件后为何不显示呢?

前台页面:
<script type="text/javascript">
function XmlPost(str)
{
  var webFileUrl=""; 
  if(str==1)
  {
    webFileUrl = "?oneid=" + escape(document.all("<%=Lbx_ClassOne.ClientID %>").value); 
    document.all("<%=Lbx_ClassTwo.ClientID %>").length=0; 
    document.all("<%=Lbx_ClassTwo.ClientID %>").options.add(new Option("=请选择姓名=",""));
    document.getElementById('div1').style.display='none';
  }
  else
  {
      webFileUrl = "?twoid="+document.all("<% =Lbx_ClassTwo.ClientID %>").value;       
       document.getElementById('div1').style.display='block';//如果有值,则显示
  }
  var result = ""; 
  var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP"); 
  xmlHttp.open("Post", webFileUrl, false); 
  xmlHttp.send(""); 
  result = xmlHttp.responseText; 
  if(result != "")
  {
    var piArray = result.split(","); 
        if(str==1)
        {
              for(var i=0; i<piArray.length; i++)
              {
                  var ary1 = piArray[i].toString().split("|"); 
                  document.all("<%=Lbx_ClassTwo.ClientID %>").options.add(new Option(ary1[1].toString(),ary1[0].toString())); 
                
              }
        }
    }
}
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr>
                <td>
                    <asp:DropDownList ID="Lbx_ClassOne" runat="server">
                        <asp:ListItem Value="0">=请选择组别=</asp:ListItem>
                    </asp:DropDownList>
                </td>
                <td>
                    <asp:DropDownList ID="Lbx_ClassTwo" runat="server">
                        <asp:ListItem Value="0">=请选择姓名=</asp:ListItem>
                    </asp:DropDownList>
                </td>
                 <td>
                   
                </td>
            </tr>
        </table>
        
        <asp:Calendar ID="Calendar1" runat="server" OnDayRender="Calendar1_DayRender" BackColor="White" BorderColor="#69B3E0" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" Height="250px" NextPrevFormat="ShortMonth" Width="100%" BorderStyle="Solid" CellSpacing="1" SelectionMode="None">
            <SelectedDayStyle BackColor="GradientActiveCaption" ForeColor="White" />
            <TodayDayStyle BackColor="#999999" ForeColor="White" />
            <OtherMonthDayStyle ForeColor="#999999" />
            <NextPrevStyle Font-Size="8pt" ForeColor="White" Font-Bold="True" />
            <DayHeaderStyle Font-Bold="True" Font-Size="8pt" ForeColor="#333333" Height="8pt" HorizontalAlign="Center" VerticalAlign="Middle" />
            <TitleStyle BackColor="#1C85C7" Font-Bold="True" Font-Size="Small" ForeColor="White" BorderStyle="Solid" Height="12pt" />
            <DayStyle BackColor="#CCCCCC" />
        </asp:Calendar>  
        
        <div id="div1" style="display:none">
                                <asp:Calendar ID="Calendar2" runat="server" OnDayRender="Calendar2_DayRender" BackColor="White" BorderColor="#69B3E0" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" Height="250px" NextPrevFormat="ShortMonth" Width="100%" BorderStyle="Solid" CellSpacing="1" SelectionMode="None">
            <SelectedDayStyle BackColor="GradientActiveCaption" ForeColor="White" />
            <TodayDayStyle BackColor="#999999" ForeColor="White" />
            <OtherMonthDayStyle ForeColor="#999999" />
            <NextPrevStyle Font-Size="8pt" ForeColor="White" Font-Bold="True" />
            <DayHeaderStyle Font-Bold="True" Font-Size="8pt" ForeColor="#333333" Height="8pt" HorizontalAlign="Center" VerticalAlign="Middle" />
            <TitleStyle BackColor="#1C85C7" Font-Bold="True" Font-Size="Small" ForeColor="White" BorderStyle="Solid" Height="12pt" />
            <DayStyle BackColor="#CCCCCC" />
        </asp:Calendar>       </div>  
    </div>
    </form>
</body>
</html>



二楼为CS后台页面 --------------------编程问答-------------------- CS后台页面
SqlConnection conn1 = new SqlConnection("server=.\\SQL2005;uid=sa;pwd=gmcc;database=ot");
    SqlConnection conn = new SqlConnection("server=.\\SQL2005;uid=sa;pwd=gmcc;database=run");

    public string strOneid = "", strTwoid = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["ok"] != null)
        {
            
            if (Request["oneid"] != null && Request["oneid"].ToString() != "")
            {
                strOneid = Request["oneid"].ToString();
            }
            if (Request["twoid"] != null && Request["twoid"].ToString() != "")
            {
                strTwoid = Request["twoid"].ToString();
            }
            if (strOneid != "")
            {
                Lbx_Class_Bind(strOneid);
            }
            if (!this.IsPostBack)
            {
                Lbx_ClassOne_Bind();
                Lbx_ClassOne.Attributes.Add("onchange", "XmlPost(1)");
                Lbx_ClassTwo.Attributes.Add("onchange", "XmlPost(2)");
                this.Calendar1.VisibleDate = Convert.ToDateTime(DateTime.Now.AddMonths(1));
                this.Calendar2.VisibleDate = Convert.ToDateTime(DateTime.Now.AddMonths(1));
                
            }
        }
        else
        {
            Response.Redirect("../userlogin.aspx");
        }
    }

    private void Lbx_ClassOne_Bind()
    {
        //默认显示分类号为1的所有子类
        string dda = "";
        if (Session["u_qy"].ToString() == "1")
        {
            dda = "select * from tbType  where u_qy='1' order by u_team";
        }
        else if (Session["u_qy"].ToString() == "2")
        {
            dda = "select * from tbType  where  u_qy='2' order by u_team";
        }
        DataTable mytab = this.Get_Dt2(dda);
        //绑牢控件
        this.Lbx_ClassOne.DataSource = mytab;
        this.Lbx_ClassOne.DataValueField = "u_team";
        this.Lbx_ClassOne.DataTextField = "u_team";
        this.Lbx_ClassOne.DataBind();

        //添加一个空的首行
        this.Lbx_ClassOne.Items.Insert(0, new ListItem("=选择组别=", ""));
    }

    private void Lbx_Class_Bind(string oneid)
    {
        string strSQL = "";
        if (oneid != "")
        {
            strSQL = "select * from OT_user_table where u_team='" + oneid + "' order by u_team";
        }
        string mystr = "";
        conn1.Open();
        SqlCommand cmd = new SqlCommand(strSQL.ToString(), conn1);
        SqlDataReader dr = cmd.ExecuteReader();

        
        while (dr.Read())
        {
            mystr += "," + dr["u_Labor_number"].ToString() + "|" + dr["u_name"].ToString();
        }
        if (mystr != "")
        {
            mystr = mystr.Substring(1);
        }
        conn1.Close();
        dr.Close();
        this.Response.Write(mystr);
        this.Response.End();
    }
    protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
    {
        string sql = "select * from tbBB where 工号='" + Session["u_Labor_number"].ToString() + "'";
        ArrayList arr = new ArrayList();
        ArrayList arr1 = new ArrayList();
        ArrayList arr2 = new ArrayList();
        conn.Open();
        SqlCommand cm2 = new SqlCommand(sql.ToString(), conn);
        SqlDataReader dt1 = cm2.ExecuteReader();
        while (dt1.Read())
        {
            arr.Add(dt1["月份"].ToString());
            arr1.Add(dt1["班次"].ToString());
        }
        conn.Close();
        for (int i = 0; i < arr.Count; i++)
        {
            if (e.Day.Date.Year.ToString() + e.Day.Date.Month.ToString() == arr[i].ToString())
            {
                string[] strDay = arr1[i].ToString().Split('-');
                if (strDay[e.Day.Date.Day].ToString() != "0")
                {
                    e.Cell.Text = "<a id='" + e.Day.Date + "' href='javascript:' onclick=\"sel2('" + e.Day.Date.Day + "-" + strDay[e.Day.Date.Day * 2 - 1].ToString() + "')\" >" + "" + strDay[e.Day.Date.Day * 2 - 1].ToString() + "    " + "<font size='4px'><strong>" + e.Day.Date.Day + "</strong></font></a>";
                }
            }
        }
    }


    protected void Calendar2_DayRender(object sender, DayRenderEventArgs e)
    {
        if (Request["twoid"] != null)
        {
            string sql = "select * from tbBB where 工号='" + Request["twoid"].ToString() + "'";
            ArrayList arr = new ArrayList();
            ArrayList arr1 = new ArrayList();
            ArrayList arr2 = new ArrayList();
            conn.Open();
            SqlCommand cm2 = new SqlCommand(sql.ToString(), conn);
            SqlDataReader dt1 = cm2.ExecuteReader();
            while (dt1.Read())
            {
                arr.Add(dt1["月份"].ToString());
                arr1.Add(dt1["班次"].ToString());
            }
            conn.Close();
            for (int i = 0; i < arr.Count; i++)
            {
                if (e.Day.Date.Year.ToString() + e.Day.Date.Month.ToString() == arr[i].ToString())
                {
                    string[] strDay = arr1[i].ToString().Split('-');
                    if (strDay[e.Day.Date.Day].ToString() != "0")
                    {
                        e.Cell.Text = "<a id='" + e.Day.Date + "' href='javascript:' onclick=\"sel2('" + e.Day.Date.Day + "-" + strDay[e.Day.Date.Day * 2 - 1].ToString() + "')\" >" + "" + strDay[e.Day.Date.Day * 2 - 1].ToString() + "    " + "<font size='4px'><strong>" + e.Day.Date.Day + "</strong></font></a>";
                    }
                }
            }
        }
    }










    private DataTable Get_Dt(string sql)
    {
        //数据库连接串,本数据库为ACCESS数据库,当前在本目录的根目录下
        //打开数据库
        this.conn1.Open();
        string sql1 = sql.ToString();
        SqlDataAdapter myAdp = new SqlDataAdapter(sql, this.conn1);
        DataTable myDt = new DataTable();
        try
        {
            //填充数据
            myAdp.Fill(myDt);
            //返回数据集
            return (myDt);
        }
        catch (SqlException ex)
        {
            //显示错误信息
            throw ex;
        }
        finally
        {
            //关闭数据库连接
            this.conn1.Close();
        }
    }

    private DataTable Get_Dt2(string sql)
    {
        //数据库连接串,本数据库为ACCESS数据库,当前在本目录的根目录下
        //打开数据库
        this.conn.Open();
        string sql1 = sql.ToString();
        SqlDataAdapter myAdp = new SqlDataAdapter(sql, this.conn);
        DataTable myDt = new DataTable();
        try
        {
            //填充数据
            myAdp.Fill(myDt);
            //返回数据集
            return (myDt);
        }
        catch (SqlException ex)
        {
            //显示错误信息
            throw ex;
        }
        finally
        {
            //关闭数据库连接
            this.conn.Close();
        }
    }



页面显示:当我没选择dropdownlist的时候


页面显示:当我选择的时候


通过测试知道,Request["twoid"].ToString()是可以读取到值的,就是在asp:Calendar页面上不显示。请教各位大侠,还有其他更好的办法吗? --------------------编程问答-------------------- 页面显示:当我没选择dropdownlist的时候


页面显示:当我选择的时候


更新下图片 --------------------编程问答-------------------- 谁可以打救我。。。 --------------------编程问答-------------------- 把你DropDownList的AutoPostBack设置为true,才可以触发OnSelectChange事件
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,