有一个index.aspx,包含搜索按钮以及一个显示结果的iframe,iframe的src为info.aspx;
当点击搜索时,就会在iframe中打开info.aspx,并传递相关的查询参数值,这时结果就显示在iframe中info.aspx的gridview控件中。
问题1:由于搜索的记录数较多,显示数据的速度会很慢,于是我想做个等待的特效,请问应该怎样实现?
问题2:服务器按钮控件怎样调用js的方法?
问题3:建站时并不是选的新建ajax.net网站,那么以后要使用ajax,应该进行一些什么样的操作呢(除了导入AjaxPro.dll,安装Ajax Extensions以外)?
问题4:这个等待的特效怎样用ajax实现(当数据加载时,弹出等待提示框,加载完毕后即关闭)?

解决方案 »

  1.   

    问题1: <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="upShowInfo">
          <ProgressTemplate>
             正在处理,请稍后...<br />
                <img src="../../Images/LoadingProcess.gif" />
            </div>
          </ProgressTemplate>
        </asp:UpdateProgress>
    问题2:以一个TextBox控件为例,this.txtFilter.Attributes.Add("onclick", "javascript:test('param');");
    问题3:你可以尝试用一个Jquery,就可以很轻松的实现你想要的效果。
    问题4:于问题1相同。
      

  2.   

    <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        
        <asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="100">
            <ProgressTemplate>
                <br />
                <br />
                <br />
                <img src="../Image_K/load.gif" alt=""><span style="color: green">正在加載數據,請您稍等! </span>
            </ProgressTemplate>
        </asp:UpdateProgress>然後你的相同處發事件的控件放在 <asp:UpdatePanel ID="UpdateFc" runat="server">
                        <ContentTemplate>
    這個裡面
     </ContentTemplate>
    //沒有放在updatepanel裡的控件可這樣<Triggers>
                                                    <asp:AsyncPostBackTrigger ControlID="ImageButton4" EventName="Click" />
                            <asp:AsyncPostBackTrigger ControlID="ImageButton8" EventName="Click" />
                            
                                                      </Triggers>
                    </asp:UpdatePanel>
                    </asp:UpdatePanel>
      

  3.   

    在当前页面点击搜索按纽后,当前页的button onclick事件会生成一个sql语句,然后转到查询结果页面,由于查询可能很费时间,客户要求在这两个页面中加入一个提示用户正在查询,请等待的页,
    具体的查询是在查询结果页面的Page_Load进行的。
    现在的问题是这个中间页面怎么自动转向查询结果页面,如果在Page_Load里写,这个中间页就显示不出来
    有两种比较中肯的解决方法:http://blog.csdn.net/biospin/archive/2008/08/27/2837861.aspx
      

  4.   

    用ajax的异步调用,个人觉得不要用控件·自己写吧
      

  5.   


    在head中加入如下的代码,如果页面加载比较慢时就可以显示loading....的字样<style type="text/css"> 
    #loader_container { 
    text-align:center; 
    position:fixed; 
    top:70px; 
    left:0; 
    width:100%; 
    z-index:10000; 
    filter:alpha(opacity=85); 
    -moz-opacity:0.85; 
    opacity:0.85; 

    * html #loader_container { 
    position:absolute; 

    #loader { 
    font-family:Tahoma, Helvetica, sans; 
    font-size:12px; 
    color:#004a8f; 
    background-color:#ecf5ff; 
    display:block; 
    width:200px; 
    border:1px solid #81b9ff; 
    text-align:left; 
    margin:0 auto; 
    padding:5px 0; 

    #loader div 

    margin: 4px 0; 

    </style> 
    <script language="javascript" type="text/javascript"> //<![CDATA[ 
    document.write('<div id="loader_container"><div id="loader"><div align="center">Loading....</div><div align="center"><img src="../Images/loading01.gif" alt="loading" /></div></div></div>'); 
      
    function remove_loading() 

    var targelem = document.getElementById('loader_container'); 
    targelem.style.display='none'; 
    targelem.style.visibility='hidden'; 

    //]]>
     
    </script>      
      

  6.   

    问题一:在Ajax Extensions中有一个现成的控件,可以实现你所说的功能
    问题二:这个好像不行,但是有在.cs文件中attributes.add()方法就可以为一个控件添加一种属性可以调用js方法
    问题三:不太清楚,我们做的时侯这样就足够了
    问题四:问题一里面已经说明了,好不好用我还没试过,如果不行的话,还是自己写吧
      

  7.   

    2.服务器端的button有一个OnClientClick的事件,写上OnClientClick="return JS函数名()",然后JS函数里判断正确可以提交就return true,否则return false