如何使用按钮单击显示进度条 [英] How to show progress bar using button click

查看:262
本文介绍了如何使用按钮单击显示进度条的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为提交的按钮。



当我点击gridview中的按钮时,会显示记录。但我希望当我点击按钮我要显​​示进度条正在加载请等待,然后在gridview记录中显示。



如何在c#中进行操作?



我的尝试:



 受保护  void  btnsubmit_Click( object  sender,EventArgs e)
{

String strConnString =
ConfigurationManager.ConnectionStrings [ ConnectionString]。ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand( select *来自tbl_trasnaction,con);
con.Open();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(ds);
gridview.DataSource = ds;
gridiew.DataBind();
}

解决方案

您需要使用所谓的多线程。

Take看看这个示例



示例。请通过双击工具箱中的ProgressBar条目,将ProgressBar控件添加到Windows窗体程序中。对于此示例,我们还需要BackgroundWorker-add one,然后创建所需的事件处理程序。



使用System.ComponentModel ; 
使用System.Threading;
使用System.Windows.Forms;

命名空间WindowsFormsApplication1
{
公共部分类Form1:表格
{
public Form1()
{
InitializeComponent() ;
}

private void Form1_Load(object sender,System.EventArgs e)
{
//启动BackgroundWorker。
backgroundWorker1.RunWorkerAsync();
}

private void backgroundWorker1_DoWork(object sender,DoWorkEventArgs e)
{
for(int i = 1; i< = 100; i ++)
{
//等待100毫秒。
Thread.Sleep(100);
//报告进度。
backgroundWorker1.ReportProgress(i);
}
}

private void backgroundWorker1_ProgressChanged(对象发送者,
ProgressChangedEventArgs e)
{
//将ProgressBar的值更改为BackgroundWorker的进展。
progressBar1.Value = e.ProgressPercentage;
//设置文本。
this.Text = e.ProgressPercentage.ToString();
}
}
}


一种方法是使用jQuery或Javascript来禁用页面中的任何/所有元素单击按钮后显示图像。这是一个简单的例子:



 <   div     id   =   divWait    style   =  position:absolute; left:50%; top:50%; margin:-100px 0 0 -150px; display :none; >  
< div style = text-align:center; width:300px; height:70px; background-color:#000; color:#fff; >
处理....
< br / >
<! - 此处的GIF图片 - >
< / div >
< / div >

< div id = divHolder >
< ! - 将您的内容放在这里和Gridview - >
< / div >
< asp:LinkBut​​ton ID = lnkSave runat = 服务器 CssClass = lnkSave / >

< ; script type <温泉n class =code-keyword> = text / javascript >


。lnkSave)。live( 单击 function (){

i have one button called "Submit".

When i click the button in gridview records is showing. but i want when i click the button i want to show progress bar "Loading please wait", then in the gridview records to be displayed.

How to do in c#?

What I have tried:

protected void btnsubmit_Click(object sender, EventArgs e)
        {

         String strConnString = 
         ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                    SqlConnection con = new SqlConnection(strConnString);
               SqlCommand cmd = new SqlCommand("select * from tbl_trasnaction", con);
                    con.Open();
                    SqlDataAdapter da = new SqlDataAdapter();
                    DataSet ds = new DataSet();
                    da.SelectCommand = cmd;
                    da.Fill(ds);
                    gridview.DataSource = ds;
                    gridiew.DataBind();
        }

解决方案

You need to make use of so called multi-threading.
Take a look at this example :

Example. Please add a ProgressBar control to your Windows Forms program by double-clicking on the ProgressBar entry in the Toolbox. For this example, we also need a BackgroundWorker—add one and then create the event handlers required.

using System.ComponentModel;
using System.Threading;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, System.EventArgs e)
        {
            // Start the BackgroundWorker.
            backgroundWorker1.RunWorkerAsync();
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            for (int i = 1; i <= 100; i++)
            {
                // Wait 100 milliseconds.
                Thread.Sleep(100);
                // Report progress.
                backgroundWorker1.ReportProgress(i);
            }
        }

        private void backgroundWorker1_ProgressChanged(object sender,
            ProgressChangedEventArgs e)
        {
            // Change the value of the ProgressBar to the BackgroundWorker progress.
            progressBar1.Value = e.ProgressPercentage;
            // Set the text.
            this.Text = e.ProgressPercentage.ToString();
        }
    }
}


One approach is to use jQuery or Javascript to disable any / all elements within your page after your Button was clicked and display your image. Here's a quick example:

<div id="divWait" style="position:absolute;left:50%; top:50%; margin:-100px 0 0 -150px; display:none;">
      <div style="text-align:center; width:300px; height:70px; background-color:#000; color:#fff;">
              Processing....
              <br/>
              <!--Your GIF image here-->
      </div>
</div>

<div id="divHolder">
      <!--Put your content here and Gridview-->
</div>
<asp:LinkButton ID="lnkSave" runat="server" CssClass="lnkSave" />

<script type="text/javascript">


(".lnkSave").live("click",function(){


这篇关于如何使用按钮单击显示进度条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆