[問題] 動態更新Label值
如果我從DB中撈資料
撈完資料後要立即更新Lable值
之後每30秒會撈一次資料
我想要在撈完資料後立即更新Label值
我嘗試用Timer
但他只能控制時間
可是我希望是在我做完這個動作後的下一行更新Label值
而不是每30秒更新值
我也試過委派了
可是都不行 請問還有甚麼辦法嗎 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.6.129
→
02/10 11:06, , 1F
02/10 11:06, 1F
→
02/10 11:06, , 2F
02/10 11:06, 2F
我是在前端寫個timer 設定每1秒撈資料
但他第一次撈資料 他會亂跳
第一次通常會在等100秒或20或30更新一次Label
之後就會固定每一秒撈資料
可是第一次撈資料的時間會不固定 之後就會很正常
不知道為什麼會這樣 謝謝
※ 編輯: Anthony53 來自: 140.109.6.129 (02/10 11:18)
→
02/10 13:23, , 3F
02/10 13:23, 3F
→
02/10 13:24, , 4F
02/10 13:24, 4F
→
02/10 13:25, , 5F
02/10 13:25, 5F
→
02/10 13:27, , 6F
02/10 13:27, 6F
我貼一下部分的程式碼
我確定值有存到A裡面 只是他沒有顯示到前端
我希望他可以動態顯示到前端
Button2_Click1(object sender, EventArgs e)
{
while{
//////撈資料到string A/////
A=撈出的資料;
}
}
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = A;
}
※ 編輯: Anthony53 來自: 140.109.6.129 (02/10 13:43)
推
02/10 15:07, , 7F
02/10 15:07, 7F
請問哪邊出了問題 謝謝
※ 編輯: Anthony53 來自: 140.109.6.129 (02/10 18:54)
→
02/10 19:04, , 8F
02/10 19:04, 8F
→
02/10 19:05, , 9F
02/10 19:05, 9F
A是string 抱歉我打錯
Timer我設定每5秒會重新更新
A的值會隨著每次while做完就會更新
A我宣告在global
所以我這樣寫會產生問題嗎 還麻煩幫忙指證 謝謝!
※ 編輯: Anthony53 來自: 140.109.6.129 (02/10 19:15)
→
02/11 00:25, , 10F
02/11 00:25, 10F
→
02/11 00:26, , 11F
02/11 00:26, 11F
→
02/11 00:26, , 12F
02/11 00:26, 12F
我有測試過 值是正確的 可是沒辦法動態更新畫面 值只會在server端
可以請教一下 如果這樣的處理 該用甚麼方式比較好呢 謝謝
※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 09:17)
※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 09:22)
→
02/11 10:14, , 13F
02/11 10:14, 13F
→
02/11 10:16, , 14F
02/11 10:16, 14F
我把我的問題簡化
static int i=0;
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = i;
}
protected void Button1_Click(object sender, EventArgs e)
{
while (true)
{
i++;
}
}
我希望看到 按下button後 會看到 0123456789....
可是我這樣寫 會只看到0就停住了 大概過了若干秒 才會出現0123456789...
※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 12:21)
→
02/11 12:27, , 15F
02/11 12:27, 15F
→
02/11 13:01, , 16F
02/11 13:01, 16F
→
02/11 13:02, , 17F
02/11 13:02, 17F
那如果我這種做法 要怎麼寫會比較適合 謝謝
※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 13:59)
→
02/11 16:53, , 18F
02/11 16:53, 18F
我這限制要用web form才可以
※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 17:12)
void A(){
回圈
{
抓資料
呼叫B
}
}
void B(){
將資料印到client
跳到A迴圈剛剛呼叫B的地方
}
我在簡化成這樣...不知道有沒有比較清楚 謝謝
※ 編輯: Anthony53 來自: 140.109.6.129 (02/11 17:16)
→
02/11 18:03, , 19F
02/11 18:03, 19F
→
02/11 18:04, , 20F
02/11 18:04, 20F
→
02/11 18:33, , 21F
02/11 18:33, 21F
→
02/11 18:57, , 22F
02/11 18:57, 22F
推
02/11 20:28, , 23F
02/11 20:28, 23F
我用的是web form
Code:
static int i=1;
static string T="";
protected void Timer1_Tick(object sender, EventArgs e)
{
////T為excel取出來的值///
Label1.Text = T;
}
protected void Button1_Click(object sender, EventArgs e)
{
while (i<1000)
{
////從excel取出T值///
i++;
}
}
原始碼大概長這樣 每3秒會取出T值 所以我設定Timer每3秒更新一次
但現在我這樣寫 前面2分鐘被while迴圈給block Timer完全執行不了
過約兩分鐘後 就會變成Timer和while兩個輪流用
大概是這樣 謝謝
※ 編輯: Anthony53 來自: 61.228.161.249 (02/11 21:00)
※ 編輯: Anthony53 來自: 61.228.161.249 (02/11 21:00)
→
02/11 23:20, , 24F
02/11 23:20, 24F
恩 可以請教一下
如果我再開另一個timer 我該怎麼控制從excel取值得timer做完取值的動作後
在呼叫另一個timer去client印出值
然後再跳回去取值呢
這是我一直卡住的地方 謝謝
※ 編輯: Anthony53 來自: 61.228.161.249 (02/11 23:31)
→
02/12 00:32, , 25F
02/12 00:32, 25F
→
02/12 01:01, , 26F
02/12 01:01, 26F
我早上試過
就是timer一開始都搶不到cpu 雖然我設定了5秒要印出值
可是它會搶不到cpu所以就沒辦法印出值
※ 編輯: Anthony53 來自: 140.109.6.129 (02/12 09:29)
→
02/12 09:32, , 27F
02/12 09:32, 27F
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章