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:ac7e5633-8527-4315-8587-a2bac6b88208--<title></title></head>
<script type="text/javascript"cmt:5e124b05-e078-4b7b-b9c3-13eee25b4676--
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:ec610139-0860-4eff-8f01-54fd4b5fd696--
<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:7197f69b-aa78-4b52-88f5-00492d9caa78--
<Columns>
<eo:RowNumberColumn DataType="Integer" Width="20"cmt:bf4b0482-c4f9-40a6-b97b-cd34a38632ec--
</eo:RowNumberColumn>
<eo:StaticColumn HeaderText="Header"cmt:0488e818-2a32-4050-9d43-0bbb758146de--
</eo:StaticColumn>
</Columns>
</eo:Grid>
<div id="divStatus" style="background-color: #E6FFFF; border: 1px solid #808080; text-align: center; width: 249px;"cmt:9051a5a2-bf3c-48be-b77e-a2b90ed510d5--</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:c0df21ef-0df0-4029-9fe6-f3ef024215f5--
</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>