[英]Form refresh issue windows form ASP.net
如果datagrid為空,我嘗試每30分鍾刷新一次表單。 我的代碼如下:
private void Form1_Load(object sender, EventArgs e)
{
BindDataGrid();
if (dataGrid_FileList.RowCount <=0)
{
Timer refreshTimer = new Timer();
refreshTimer.Interval = 30000; //30 seconds in milliseconds
refreshTimer.Tick += new EventHandler(refreshTimer_Tick);
refreshTimer.Start();
}
}
void refreshTimer_Tick(object sender, EventArgs e)
{
this.Controls.Clear();
this.InitializeComponent();
BindDataGrid();
if (dataGrid_FileList.RowCount>0)
{
InhouseDownloadeer_Shown(this, null);
}
}
當datagrid的RowCount為<=0
時,此代碼效果很好,但即使datagrid包含的行> 0
該代碼仍將繼續。 如果數據網格包含行,如何防止refreshTimer_Tick?
您也可以停止計時器。 在方法之外聲明計時器變量。
Timer refreshTimer = new Timer();
private void Form1_Load(object sender, EventArgs e)
{
refreshTimer.Interval = 30000;
refreshTimer.Tick += new EventHandler(refreshTimer_Tick);
}
現在,只需調用refreshTimer.Stop();
當需要另一種方法時。
PS asp.net
和winforms
不是一回事。
您可以在databind方法之后調用if語句。 而且我認為它在您的數據網格綁定其行之前執行。
對我來說,您應該從refreshTimerTick事件中刪除以下代碼:
if (dataGrid_FileList.RowCount>0)
{
InhouseDownloadeer_Shown(this, null);
}
喜歡 :
void refreshTimer_Tick(object sender, EventArgs e)
{
this.Controls.Clear();
this.InitializeComponent();
BindDataGrid();
}
並將其放在DataBount事件中
void dataGrid_DataBound(object sender, EventArgs e)
{
if (dataGrid_FileList.RowCount>0)
{
InhouseDownloadeer_Shown(this, null);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.