Jul 06, 2012, 5:10 AM
Stop a task from server-side.
Hi, I extended ProgressBar with a TaskManager,
//FPPProgress.cs
public void Stop()
{
taskManager.StopTask(task.TaskID);
//ResourceManager.AddScript("{0}.stopTask('{1}');", this.taskManager.ClientID, task.TaskID);
}
protected override void CreateChildControls()
{
this.Controls.Clear();
base.CreateChildControls();
task = new Task();
task.TaskID = "ProgressBarTask";
task.Interval = 1000;
task.DirectEvents.Update.Event += new ComponentDirectEvent.DirectEventHandler(OnTick);
taskManager = new TaskManager
{
ID = "ProgressTaskManager"
};
taskManager.Tasks.Add(task);
this.Controls.Add(taskManager);
}
And then, Creat a window with FppProgressBar Dynamiclly.//WebForm.aspx
protected void Button1_DirectClick(object sender, Ext.Net.DirectEventArgs e)
{
ThreadPool.QueueUserWorkItem(LongAction);
var win = CreatePostDynamicControl("ProgressWindow", "form1", -1,x=> createProgressWindow()) as Window;
win.Render(this.Form);
}
private Control createProgressWindow()
{
var win = new Window()
{
ID = "ProgressWindow",
Title = "请稍候",
Width = System.Web.UI.WebControls.Unit.Pixel(400),
Height = System.Web.UI.WebControls.Unit.Pixel(300),
Collapsible = false,
Maximizable = false,
Modal = true
};
FPPProgressBar progressBar = new FPPProgressBar();
progressBar.Interval = 1000;
progressBar.ID = "ProgressBar";
progressBar.AutoRun = true;
progressBar.Tick += new FPPProgressBar.TickHandler(progressBar_Tick);
win.Items.Add(progressBar);
return win;
}
But Stop() do not work, the client-side error is "Cannot call method 'stopTask' of undefined";//FPPProgress.cs
public void Stop()
{
taskManager.StopTask(task.TaskID);
//ResourceManager.AddScript("{0}.stopTask('{1}');", this.taskManager.ClientID, task.TaskID);
}
Last edited by Daniil; Jul 06, 2012 at 4:47 PM.
Reason: Please use [CODE] tags