但是只有一个DIV可以显示出内容。。

解决方案 »

  1.   

    ChatRoom.GetNewMsgString().value; 
          
        
    ChatRoom.GetSiLiao().value; 
    是不是上面的代码不能同时兼容,只能执行一个从而导致另一个出错??
      

  2.   

    这个是调用了AJAX.DLL文件 实现无刷新的 后台的方法没有问题~而且如果注释掉其中一个DIV另一个就可以正常显示聊天内容了
    function send()
      {
        if(ChatRoom.ISnotSend().value ==1)
        {
           var txtContent = document.all("content").value; //文本框输入内容
           if (txtContent == "")return;
           var user_to = document.all("userlist").value;  //聊天对象
           var textcolor = document.all("textcolor").value;  //颜色
           var isPublic = !(document.all("isSecret").checked);  //是否密谈 
           
           //调用服务器端方法发送消息
           ChatRoom.SendMsg(txtContent, user_to, textcolor, isPublic);
           
           //更新聊天内容显示
    //       var txt = ChatRoom.GetNewMsgString().value;
    //       
    //       var aaa = document.all("chatcontent");
    //       
    //       aaa.innerHTML = txt + aaa.innerHTML;
           
       }
       else
       {
        alert("你已经被禁言");
       }
       ssend();
       //清空输入框
       document.all("content").value = "";
      }
      function ssend()
      {
           var stxt = ChatRoom.GetSiLiao().value;
           
           var bbb = document.all("chatsiliao");
           
           bbb.innerHTML = stxt + bbb.innerHTML;
      }
      

  3.   

    下面是后台的方法
    /// <summary>
            /// 获取新消息的html字符串
            /// </summary>
            /// <returns>客户端输出的html字符串</returns>
            [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
            public string GetNewMsgString()
            {
                string strMsgHTML = "";
                
                SqlConnection conn = new SqlConnection(
                    ConfigurationManager.ConnectionStrings["SQLDB"].ToString());            SqlCommand cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "GetNewMsg";
                cmd.Parameters.Add("@uname", UName);            conn.Open();
                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        if (dr.GetString(1) != "")
                        {
                            strMsgHTML += string.Format(
                                "<span class='chatmsg' style='COLOR: #{0}'>{1}&nbsp;{2}&nbsp;{3}&nbsp;说:&nbsp;{4}</span><br>",
                                dr["color"].ToString(),
                                TestYourself(dr["uname"].ToString()),
                                TestIsPublic(dr.GetBoolean(5)),
                                TestYourself(dr["user_to"].ToString()),
                                Replace_GTLT(dr["msg"].ToString()));
                        }
                        else
                        {
                            strMsgHTML += string.Format(
                                "<span class='chatmsg' style='COLOR: #{0}'>{1}</span><br>",
                                dr["color"].ToString(),
                                dr["msg"].ToString());
                        }
                    }
                }
                conn.Close();            SetMsgPos();            return strMsgHTML;
            }        [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
            public string GetSiLiao()
            {
                string strMsgHTML = "";            SqlConnection conn = new SqlConnection(
                    ConfigurationManager.ConnectionStrings["SQLDB"].ToString());            SqlCommand cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "GetMMsg";
                cmd.Parameters.Add("@uname", UName);            conn.Open();
                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        if (dr.GetString(1) != "")
                        {
                            strMsgHTML += string.Format(
                                "<span class='chatmsg' style='COLOR: #{0}'> [ {1} ]&nbsp;{2}&nbsp;{3}&nbsp;{4}</span><br>",
                                dr["color"].ToString(),
                                dr["uname"].ToString(),
                                TestIsPublic(dr.GetBoolean(5)),
                                TestYourself(dr["user_to"].ToString()),
                                Replace_GTLT(dr["msg"].ToString()));
                        }
                        else
                        {
                            strMsgHTML += string.Format(
                                "<span class='chatmsg' style='COLOR: #{0}'>{1}</span><br>",
                                dr["color"].ToString(),
                                dr["msg"].ToString());
                        }
                    }
                }
                conn.Close();            SetMsgPos();            return strMsgHTML;
            }
      

  4.   

    应该连续AJAX回调了2次的问题
    更新聊天内容显示 可以用定时刷新
      

  5.   

    已经用了定时刷新~但是这里也只是一个DIV显示 
      

  6.   

    组件不鸟解,如果是手写还可以帮你看下js而且看你的js代码逻辑不太对啊,你只是发表留言时才更新聊天记录
    function send() 
      { 
        if(ChatRoom.ISnotSend().value ==1) 
        { 
          var txtContent = document.all("content").value; //文本框输入内容 
          if (txtContent == "")return; 
          var user_to = document.all("userlist").value;  //聊天对象 
          var textcolor = document.all("textcolor").value;  //颜色 
          var isPublic = !(document.all("isSecret").checked);  //是否密谈 
          
          //调用服务器端方法发送消息 
          ChatRoom.SendMsg(txtContent, user_to, textcolor, isPublic); 
          
          //更新聊天内容显示 
    //      var txt = ChatRoom.GetNewMsgString().value; 
    //      
    //      var aaa = document.all("chatcontent"); 
    //      
    //      aaa.innerHTML = txt + aaa.innerHTML; 
          
      } 
      else 
      { 
        alert("你已经被禁言"); 
      } 
      ssend(); 
      //清空输入框 
      document.all("content").value = ""; 
      } 
     function ssend() 
      { 
          var stxt = ChatRoom.GetSiLiao().value; 
          
          var bbb = document.all("chatsiliao"); 
          
          bbb.innerHTML = stxt + bbb.innerHTML; 
    //==============================将聊天记录更新放入ssend()函数里面看看
          var txt = ChatRoom.GetNewMsgString().value; 
          
          var aaa = document.all("chatcontent"); 
          
          aaa.innerHTML = txt + aaa.innerHTML; 
      }