想请教一下大家 ,如果做一个在线咨询页面发送按钮是用Html控件好,还是服务器控件好。
  服务器控件的话单击发送会回传,页面会刷新用户体检不好,但是用Html控件呢就要用ajax来发送请求传输发送内容到别的页面进行处理,这是一个发送按钮使用的会很频繁,用ajax会有很多问题。
  想请问一下大家这个发送按钮该怎么做会比较好,(上面说错,新手勿怪- -)。

解决方案 »

  1.   

     服务器控件的话单击发送会回传,页面会刷新用户体检不好,
    =====================================================
    用updatepanel包一下,就不会回传了
      

  2.   


       谢谢你的回复,用updatepanel的话 只是不用手写ajax他只是封装了一下, 解析后还是差不多啊。     期待更好的回复 谢谢。
     
         
      

  3.   

    这个大哥,你写程序多久了;
    谁说每次刷新页面用户体验不好,就我个人看来,刷新的效率远比Ajax异步请求的效率要高。
    如果真要说好的话,html在互联网上效率也是最高的,服务器控件当然不能比。用updatepanel包一下,就不会回传了,个人感觉太死板,如果真的要追求好的话,那你就生成静态页面。因为现在的服务器也不会在乎那么一点空间了。
      

  4.   

     
        没有很久,但是我不同意您的说法,你觉得每次单击一次发送整个页面刷新一下会很好,至少我觉得不好,我还没看到网上哪个在线咨询是这样的,都是无刷新的。比如这个网站 http://chat.live800.com/live800/chatClient/chatbox.jsp?companyID=23919&jid=9897881703&enterurl=http%3A%2F%2Fwww%2Ecsfeixun%2Ecom%2F&tm=1281430314875  北大青鸟的在线咨询       很感谢你的回复。期待跟好的答案。
      

  5.   


       都是用updatepanel包一下嘛!  大家有没有别的办法呢!
      

  6.   

    推荐还是使用ajax比较好吧..或者使用flash也行
      

  7.   

    不用ajax 那还有一个做法可以不用刷新当前页面 加个iframe<iframe src="ref.aspx" height="0"></iframe> 高度为零是为了隐藏,ref。aspx 中写你需要回调的访法,同时在ref.aspx 的 onload 事件 中把结果通知你的操作页面,iframe 和 parent 的数据通信网上有很多。这样最终的效果是你的操作页面不会闪动。
      

  8.   


        你好,你说的是显示聊天信息页面用iframe 我是用了iframe,但是我的问题是单击发送按钮它会使页面刷新。
      

  9.   

    你可以这样 
    <html>
    <head>
    <title> 当前是聊天页面 </title>
    </head>
    <body>
       <iframe src="ref.aspx" height="0"></iframe>
       
       其他相关代码
       ...
       ...
    </body>
    <html>
     在这个页面需要提交服务器时,把要发挥的数据传给 ref.aspx页面,并让他回调服务器
      

  10.   

    包含 ref.aspx 的ifram发在那你可以根据你的项目来定,这样做是因为在iframe中的页面刷新不会影响其他页面
      

  11.   


       您好 你能贴贴发送请求的代码嘛  我不是太懂只会用Ajax来发一个请求,或JQuery
      

  12.   

    JQuery + WebService 搞定就可以了!
    你要是只是做一个 咨询页面,
    完全可以JQuery+ .aspx或是JQuery +.ashx  
    可以做到异步更新页面!
    就可以了!不建议用UpdatePanel
      

  13.   

    主窗口 类似你的聊天页面
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Message.aspx.cs" Inherits="WebApplication1.Message" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
    <script language=javascript>
        function sub(value) {
            var field = window.frames['ref'].document.getElementById("HiddenField1");        field.value = value;
            
            window.frames['ref'].document.form1.submit();
        }
        
    </script>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server" Width="215px"></asp:TextBox>
            <input id="Button1" type="button" value="发送" onclick="sub(TextBox1.value);" /></div>
        <iframe id="ref" name="ref" src="Ref.aspx" height="0"></iframe>
        </form>
    </body>
    </html>
    刷新页面<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Ref.aspx.cs" Inherits="WebApplication1.Ref" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
    <script runat="server">
        protected void Page_Load( object sender, EventArgs e )
        {
            if( IsPostBack )
            {
                string message = HiddenField1.Value;
            }
        }
    </script>    <form id="form1" runat="server">
        <div>
            <asp:HiddenField ID="HiddenField1" runat="server" />
        </div>
        </form>
    </body>
    </html>在 message 的 TextBox1 中输入的字符可以在 ref 的 load 读取
      

  14.   

    可以使用 ajax 无刷新。
    也可以使用 iframe 局部刷新