Нужно чтоб компонента самообновлялась, через определённое время. На форме ScriptManager, UpdatePanel в котором компонента
Проблема с перересовкой компоненты, как её вызвать в TimerProc (Код таймера)
Другие идеи принемаются.
Код | ......... protected override void OnInit(EventArgs e) { ..... try { //Add Label LabelWithTimer = new Label(); LabelWithTimer.ID = "lblLabelWithTimer"; LabelWithTimer.Text = ""; this.Controls.Add(LabelWithTimer);
//Add timer System.Threading.Timer t = new System.Threading.Timer(new TimerCallback(TimerProc)); t.Change(0, TimerTick); } catch { } base.OnInit(e); }
protected override void Render(HtmlTextWriter output) { try { ..............
LabelWithTimer.Text = DateTime.Now.ToString(); string tmpOutStr = BasicMask; tmpOutStr = tmpOutStr.Replace("<?Label?>", RenderToString(LabelWithTimer));
output.Write(tmpOutStr); } catch { }
}
private static string GetText() { ......... Получаю разные тексты }
private static void TimerProc(object state) { try { LabelWithTimer.Text = DateTime.Now.ToString();//GetText();
//теперь должен както это отобразить } catch { } }
private static string RenderToString(Control c)//vozrasaet kontroll kak stroku { StringBuilder sb = new StringBuilder(); System.IO.StringWriter sw = new System.IO.StringWriter(sb); HtmlTextWriter htw = new HtmlTextWriter(sw); c.RenderControl(htw); return sb.ToString(); }
|
Render(HtmlTextWriter output) вызвать не получается, так как он не может быть static |