ASP.NET for循环进度条

ASP.NET_for循环进度条


网上那些进度条 都是在新页面 或者覆盖页面产生的,给大家一个思路,那我们使用框架,然后把进度条调用就可以了


代码依旧是用 网上那些的,但是你要新建一个ASPX的页面来存放你的for循环:


新建的 neironghtml.aspx ASPX页面 添加后台代码 空白地方 放这3个:


    private void beginProgress()
    {
        //根据ProgressBar.htm显示进度条界面   
        string templateFileName = System.IO.Path.Combine(Server.MapPath("."), "ProgressBar.htm");
        System.IO.StreamReader reader = new System.IO.StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("GB2312"));
        string html = reader.ReadToEnd();
        reader.Close();
        Response.Write(html);
        Response.Flush();
    }

    private void setProgress(int percent)
    {
        string jsBlock = "

";
        Response.Write(jsBlock);
        Response.Flush();
    }

    private void finishProgress()
    {
        string jsBlock = " ";
        Response.Write(jsBlock);
        Response.Flush();
    }



  protected void Page_Load(object sender, EventArgs e)
    {

        beginProgress();

        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sql"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from 文章列表", con);
        SqlDataReader sdr = cmd.ExecuteReader();


        for (int i = 0; i <= 100; i++)
        {


            if (sdr.Read())
            {



                ////////////////

                double a = Convert.ToDouble(5000); /// 比如有5000条记录
                double b = Convert.ToDouble(i);


                double d = b / a * 100;

                int bbb = Convert.ToInt32(d);


                setProgress(bbb);




                ///////////////////

                string url = "http://www.baidu.com/news.aspx?=" + sdr["id"].ToString();

                string Html = string.Empty;//初始化新的webRequst
                HttpWebRequest Request1 = (HttpWebRequest)WebRequest.Create(url);

                Request1.KeepAlive = true;
                Request1.ProtocolVersion = HttpVersion.Version11;
                Request1.Method = "GET";
                Request1.Accept = "*/* ";
                Request1.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5";
                Request1.Referer = url;

                HttpWebResponse htmlResponse = (HttpWebResponse)Request1.GetResponse();
                //从Internet资源返回数据流
                Stream htmlStream = htmlResponse.GetResponseStream();
                //读取数据流
                StreamReader weatherStreamReader = new StreamReader(htmlStream, Encoding.UTF8);
                //读取数据
                Html = weatherStreamReader.ReadToEnd();
                weatherStreamReader.Close();
                htmlStream.Close();
                htmlResponse.Close();
                //针对不同的网站查看html源文件



                StreamWriter FileWriter = new StreamWriter(Server.MapPath(@"~/newss/") + sdr["id"].ToString() + ".html", true); //写文件
                FileWriter.Write(Html);//将字符串写入

                FileWriter.Flush();

                FileWriter.Close(); //关闭StreamWriter对象

                TextBox1.Text = i.ToString(); //这个呢 是用来完成后,显示给用户看的一个控件而已(比如显示完成的了 什么的提示语)


            }

            else
            {

            }


        }

        finishProgress();

        sdr.Close();
        con.Close();





    }
}



现在在 需要调用的页面 例如你 test.aspx 在框架调用 你刚才新建的neironghtml.aspx


    <a href="neironghtml.aspx" target="jianjie" onclick="document.getElementById('divjianjie').style.display='block'">  
        <input id="Button5" type="button" value="内容生成按钮" class="button3"/></a>


<div id="divjianjie" onclick="this.style.display='none'" width="400" height="50">
    <iframe name="jianjie" src="" width="400" height="50" frameborder="no" border="0" 
        marginwidth="0" marginheight="0" scrolling="no" allowtransparency="yes"></iframe>
</div>


对了 还有一个ProgressBar.htm 代码如下 ,新建一个就好



<script language="javascript">
  function SetPorgressBar(pos) {
    //设置进度条居中
  
    var screenWidth = document.body.offsetWidth;

    ProgressBarSide.style.height = "31px";
    ProgressBarSide.style.display = "block";
  
    //设置进度条百分比
    ProgressBar.style.width = pos + "%";
    ProgressText.innerHTML = pos + "%";
  }
  
  function SetMaxValue(maxValue) {
    ProgressBarSide.style.width = maxValue + "px";
  }
  
  //完成后隐藏进度条
  function SetCompleted() {
    ProgressBarSide.style.display = "none";
  }
  
  function SetTitle(title) {
    ProgressTitle.innerHTML = "生成静态中";
  }
</script>
<div id="ProgressBarSide" style="position: absolute; height: 31px; width: 200px;
   border-width: 1px; border-style: Solid; display: block">
  <div id="ProgressBar" style="position: absolute; height: 31px; width: 0%; background-color: #09F738">
  </div>
  <div id="ProgressText" style="position: absolute; height: 31px; width: 200px; text-align: center">
  </div>
  <div id="ProgressTitle" style="position: absolute; height: 31px; top: 61px; width: 100%;
    text-align: center">
  </div>
  
  
</div>




webform
桂ICP备16004754号