Hello,
I am trying to use a progressbar to show the progress while iterating through the items of a grid and cannot understand why the grid control is not accessible in its latest state from within the RunTask of the progressbar.
I have reproduced (code below) what I saw in the following example including only the grid, the progressbar and and a button to trigger the start of the runtask.
I initialize the grid with some simple data in the page load sub. When triggered, the runtask shows a grid item count of zero.
What am I missing?
Thanks for your help.
Code: Visual Basic.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
For i = 0 To 4
Dim gi As EO.Web.GridItem = Grid1.CreateItem()
gi.Cells(1).Value = "Item " + (i + 1).ToString
Grid1.Items.Add(gi)
Next
End If
End Sub
Protected Sub ProgressBar1_RunTask(ByVal sender As Object, ByVal e As EO.Web.ProgressTaskEventArgs)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MsgBox("Number of items:" + Grid1.Items.Count.ToString)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
e.UpdateProgress(0, "Start")
System.Threading.Thread.Sleep(1000)
Dim i As Integer = 0
For Each item As EO.Web.GridItem In Grid1.Items
System.Threading.Thread.Sleep(1000)
e.UpdateProgress(i * 20, item.Cells(1).Value)
i = i + 1
Next
System.Threading.Thread.Sleep(1000)
e.UpdateProgress(100, "Finish")
End Sub
I do not know why the javascript does not show properly. I copied it again in the body of the message below this window...
Code: JavaScript
<head runat="server"cmt:4c35e7f5-6d8d-43d2-883a-4c320f3bd8f5--<title></title></head>
<script type="text/javascript"cmt:dc9427ae-10bc-4f91-b647-6d119fd4ba66--
function ShowExtraData() {
var pb = eo_GetObject("ProgressBar1");
var extraData = pb.getExtraData();
if (extraData) {
var div = document.getElementById("divStatus");
div.innerHTML = extraData ;
}
}
</script>
<body>
<form id="form1" runat="server"cmt:1b097b9d-506e-4971-8935-62e44f3cd508--
<asp:Button ID="Button1" runat="server" Text="Button" />
<eo:Grid ID="Grid1" runat="server" BorderColor="#C7D1DF" BorderWidth="1px"
FixedColumnCount="1" Height="113px" ItemHeight="19" Width="129px"cmt:854bfe56-c6a6-4718-b2cc-f369f27f7b32--
<Columns>
<eo:RowNumberColumn DataType="Integer" Width="20"cmt:d058eaa1-821f-4092-b643-d0d0aaca0894--
</eo:RowNumberColumn>
<eo:StaticColumn HeaderText="Header"cmt:fdabd2f7-7ed9-40a0-817b-da872e7a864b--
</eo:StaticColumn>
</Columns>
</eo:Grid>
<div id="divStatus" style="background-color: #E6FFFF; border: 1px solid #808080; text-align: center; width: 249px;"cmt:80d2f8cf-80bd-4364-83cf-2b9f90f61503--</div>
<eo:ProgressBar ID="ProgressBar1" runat="server" BackgroundImage="00060301"
BackgroundImageLeft="00060302" BackgroundImageRight="00060303"
ClientSideOnValueChanged="ShowExtraData" ControlSkinID="None"
IndicatorImage="00060304" onruntask="ProgressBar1_RunTask" ShowPercentage="True" StartTaskButton="Button1" Width="250px"cmt:8137681e-fd69-4f9e-8f1c-9887c0dd0e48--
</eo:ProgressBar>
</form>
</body>
<head runat="server"><title></title></head>
<script type="text/javascript">
function ShowExtraData() {
var pb = eo_GetObject("ProgressBar1");
var extraData = pb.getExtraData();
if (extraData) {
var div = document.getElementById("divStatus");
div.innerHTML = extraData ;
}
}
</script>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" />
<eo:Grid ID="Grid1" runat="server" BorderColor="#C7D1DF" BorderWidth="1px"
FixedColumnCount="1" Height="113px" ItemHeight="19" Width="129px">
<Columns>
<eo:RowNumberColumn DataType="Integer" Width="20">
</eo:RowNumberColumn>
<eo:StaticColumn HeaderText="Header">
</eo:StaticColumn>
</Columns>
</eo:Grid>
<div id="divStatus" style="background-color: #E6FFFF; border: 1px solid #808080; text-align: center; width: 249px;"></div>
<eo:ProgressBar ID="ProgressBar1" runat="server" BackgroundImage="00060301"
BackgroundImageLeft="00060302" BackgroundImageRight="00060303"
ClientSideOnValueChanged="ShowExtraData" ControlSkinID="None"
IndicatorImage="00060304" onruntask="ProgressBar1_RunTask" ShowPercentage="True" StartTaskButton="Button1" Width="250px">
</eo:ProgressBar>
</form>
</body>