收录日期:2019/12/11 20:23:09 时间:2016/07/18 18:11:09 标签:ASP.NET
我发布到自己机子上,传到别人的机子上都能用,传到网上的虚拟空间里后就不能用了。

我把联动做在一个用户控件里了,代码如下:

1.LianDong.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="LianDong.ascx.cs" Inherits="User_Job.PublicInfo.LianDong" %>

<table style="width: 120px; height: 31px;font-size:12px;" cellpadding="0" cellspacing ="0">
    <tr>
        <td style="width: 291px; height: 26px; ">
            </td>
        <td style="width: 165px; height: 26px; ">
            
            <asp:DropDownList onchange="Go(this)" id="dListParent" runat="server" Height="23px">
   </asp:DropDownList></td>
        <td style="width: 146px; height: 26px">
        &nbsp;
        </td>
        <td style="width: 248px; height: 26px">
        <select id="dListChild" runat="server"></select></td>
    </tr>
</table>
 <script language="javascript" defer="defer" type="text/javascript">
         //jb函数会根据不同的浏览器初始化个xmlhttp对象
         function jb()
         {
            var A=null; 
               try 
               { 
                   A=new ActiveXObject("Msxml2.XMLHTTP"); 
                } 
            catch(e)
            { 
                  try 
                   { 
                      A=new ActiveXObject("Microsoft.XMLHTTP"); 
                   }
             catch(oc)
            { 
                     A=null 
                   } 
              } 
           if ( !A && typeof XMLHttpRequest != "undefined" ) 
            { 
               A=new XMLHttpRequest() 
             } 
           return A 
         }
         
         //下面Go函数是父列表框改变的时候调用,参数是选择的条目
         function Go(obj)
         {
            //得到选择框的下拉列表的value
           var svalue = obj.value;
            //定义要处理数据的页面
            var weburl = "PubRecuTutor.aspx?TCID="+svalue;
            //初始化个xmlhttp对象
            var xmlhttp = jb();
            //提交数据,第一个参数最好为get,第三个参数最好为true
            xmlhttp.open("get",weburl,true);
           // alert(xmlhttp.responseText);
            //如果已经成功的返回了数据
            xmlhttp.onreadystatechange=function()
            {
              if(xmlhttp.readyState==4)//4代表成功返回数据
               {
                  var result = xmlhttp.responseText;//得到服务器返回的数据
                  //先清空dListChild的所有下拉项
                 document.getElementById("<%= dListChild.ClientID %>").length = 0;
                  //给dListChild加个全部型号的,注意是Option不是option
                  document.getElementById("<%= dListChild.ClientID %>").options.add(new Option("请选择名称","000"));
                  if(result!="")//如果返回的数据不是空
                  {
                     //把收到的字符串按照,分割成数组
                     var allArray = result.split(",");
                    //循环这个数组,注意是从1开始,因为收到的字符串第一个字符是,号,所以分割后第一个数组为空
                     for(var i=1;i<allArray.length;i++)
                     {
                        //在把这个字符串按照|分割成数组
                       var thisArray = allArray[i].split("|");
                        //为dListChild添加条目
                        document.getElementById("<%= dListChild.ClientID %>").options.add(new Option(thisArray[1].toString(),thisArray[0].toString()));
                     }
                  }
               }
            }
            //发送数据,请注意顺序和参数,参数一定为null或者""
            xmlhttp.send(null);
         }
  </script>



2. LianDong.ascx.cs


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace User_Job.PublicInfo
{
    public partial class LianDong : System.Web.UI.UserControl
    {
        ///protected System.Web.UI.WebControls.DropDownList dListParent;
        ///protected System.Web.UI.WebControls.Button Button1;
        ///protected System.Web.UI.WebControls.DropDownList dListChild;

        private void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            if (!IsPostBack)
            {
                BindDrop();//如果不是提交回来就绑定列表框
            }
        }

        protected void BindDrop()
        {
            //首先我想父dropdownlist也绑定数据库,后面想没必要
            //if(!IsPostBack)
            //{
            //绑定父dListParent
            //BindParent();
            //}
            //获得传递过来的parent_id值,如果是第一次请求他为null
            string str = Request.QueryString["TCID"];
            string str1 = dListParent.SelectedValue;
            ///System.Web.UI.HtmlControls.HtmlSelect hDownParent = (System.Web.UI.HtmlControls.HtmlSelect)this.FindControl("dListParent");
            ///string str1 =Request[hDownParent.UniqueID];
            //Response.Write(str1 + "yuan");
            //如果str加个字符串!=原来的字符串则说明触发过dListParent的onchange事件
            if ((str + "abc") != "abc")
            {
                //绑定 dListChild控件
                BindChild(str);//把传来的父DropDownList的value做为参数
                //Response.Write(str);
            }
            else
            {
                BindParent(str1);
            }
        }


        protected void BindParent(string str)
        {
            //如果是第一次请求或者是刷新这个页面则根据dListParent的值来选择
            //把参数转化成int
            ///int i = Convert.ToInt32(str);
            dListChild.Items.Clear();
            dListChild.Items.Add(new ListItem("名称", "000"));
            dListParent.Items.Add(new ListItem("请选择类别", "000"));
            //得到数据库连接字符串
            string connStr = ConfigurationManager.ConnectionStrings["AdminRecuJobConn"].ConnectionString;
            //初始化个conn对象
            SqlConnection conn = new SqlConnection(connStr);
            //数据库语句
            //string commStr = string.Format("select type_value,type_text from phone_type where parent_id={0}",i);
            string commStr = string.Format("select TCID,TCName from tb_ThirdClass where scid='51015944-87DF-4026-9D39-1E8A8A79214C' order by TCID");
            //建立数据库命令对象
            SqlCommand comm = new SqlCommand(commStr, conn);
            //打开数据库
            conn.Open();
            //执行命令
            SqlDataReader dr = comm.ExecuteReader();
            //循环dr,给dListParent添加条目
            while (dr.Read())
            {
                ///dListChild.Items.Add(new ListItem(dr[1].ToString(),dr[0].ToString()));
                //也可以这样
                dListParent.Items.Add(new ListItem(dr["TCName"].ToString(), dr["TCID"].ToString()));
            }
            dListParent.Items[0].Selected = true;
            //添加下面这话的意思是当点提交按钮提交窗体的时候第二个dListChild的状态能够得到保存
            ///System.Web.UI.HtmlControls.HtmlSelect hDownChild = (System.Web.UI.HtmlControls.HtmlSelect)this.FindControl("dListChild");
            ///hDownChild.Value = Convert.ToString(Session["SubjectID"]);            
            //dListChild.SelectedValue = Request["<%= dListChild.ClientID %>"];
            dr.Close();
            conn.Close();
        }


        protected void BindChild(string str)
        {
            //通过js给包括dropdownlist任何控件添加的内容不会被保存状态
            //把参数转化成int
            ///int i = Convert.ToInt32(str);
            //定义个字符串用保存从数据库返回的数据
            string result = "";
            //先清空输出的东西
            Response.Clear();
            string connStr = ConfigurationManager.ConnectionStrings["AdminRecuJobConn"].ConnectionString;
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand comm = conn.CreateCommand();
            ///string commStr = string.Format("select type_value,type_text from phone_type where parent_id = {0}",i);
            string commStr = string.Format("select ForcID,ForName from tb_ForthClass where TCID = '{0}'", str);
            comm.CommandText = commStr;
            conn.Open();
            SqlDataReader dr = comm.ExecuteReader();
            while (dr.Read())
            {
                result += "," + dr[0].ToString() + "|" + dr[1].ToString();
                //dListChild.Items.Add(new ListItem(dr[1].ToString(),dr[0].ToString()));
            }
            //把从数据库得到的信息输出到客户端
            Response.Write(result);
            //输出完成关闭Response,以免造成不必要的输出
            Response.Flush();
            Response.Close();
            dr.Close();
            conn.Close();
        }
        #region Web 窗体设计器生成的代码
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }

        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            //this.Button1.Click += new System.EventHandler(this.Button1_Click);
            //this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
    }
}


跪求高手解决。
我发现好像是 liandong.ascx中 
var result = xmlhttp.responseText;//得到服务器返回的数据 

得不到服务器返回的数据呢.       这怎么解决呢??
应该是环境配置问题
什么错误
传到服务器不能,是不是你没安装ajax插件~
看看是不是脚本禁用或者防火墙设置
就是改变第一个下拉菜单的选项,第二个没反应
document.getElementById(" <%= dListChild.ClientID %>").options.add(new Option("请选择名称","000")); 只这条起了作用 ,第二个下拉菜单出现了  "请选择名称"。其他选项出不来。
引用 2 楼 wuyq11 的回复:
应该是环境配置问题
什么错误


你是说 虚拟主机服务器没装ajax插件是吗?
web.config不知道要不要配置
引用 7 楼 lovexilove 的回复:
web.config不知道要不要配置


怎么配置呢? 我试一下啊
楼上的,楼主是自己写的XMLHTTP,不存在服务器装不装AJAX组件与什么配置问题,楼主建议你自己拿现成的AJAX框架吧,Jquery就很好
我发现是 LianDong.ascx.cs里面的bindChild方法的 下面这句话

            //把从数据库得到的信息输出到客户端 
            Response.Write(result); 

有问题,我直接Response.Write("hhhhh");
然后传到虚拟主机上,客户端也接受不到。

但在自己机子上就能接到,传到虚拟主机里面就不行了。  这是怎么回事啊??

如何 让IE自动最大化? 给二百个人分,我的累死!一个个的填分数,建议能够自动分配和自动计算人数(不同名字)! 各位好,我有个关于CView派生的问题请教各位高手(这里的每一位应该都比我厉害)。 各位朋友进来骂骂我吧!我好烦!!!!!~~~~~~~~~~~~~~ 在IE4下为何无法往工具条上增加按钮,也不能往菜单里增加菜单项?我该怎么办? 关于关闭浏览器!!!!!!!! 有没有介绍hook api的书籍,介绍一本 请问如何将windows帮助文件hlp,chm转换为完整的html文件,有工具吗?谢谢!!! 这里真热闹,我也来凑一凑。 如何在vb中运行有参数的存储过程? 请问如何将windows帮助文件hlp,chm转换为完整的html文件,有工具吗? 请教各位高手一个delphi打包的问题 天大的漏洞(用ODBC连接数据库),大家小心... c#和java到底有什么区别? 请问如何将windows帮助文件hlp,chm转换为完整的html文件,有工具吗?谢谢!! 软件发布:欢乐方块 請問oracle 默認的數據庫叫甚麼名字 真诚邀请,五一节到梧桐山登山望远,在不在深圳的都可以来呀!CSDN灌友见面会! 关于日期转换的一个小小问题,请指教! 高手救我!!!!谁有可以控制远程计算机拨号上网并获取其IP地址的方法或代码???? 如何能屏蔽ie上的菜单???? pb+anywhere中关于临时表的创建 有关oracle中的异地数据库同步传输..... 关于用户对象的问题!棘手! 怎样在vb用CreateThread或其它方法创建线程(在应用程序中) 软件发布:“汉诺塔”游戏 软件发布:汉诺塔游戏 使用面向对象的思路设计一个Server/Client模式的多功能聊天软件(IRC-Like),请问你如何思考? 纯净水! 菜鸟问题50分:扩展HUB