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:a1702305-6b1d-427e-b47a-b362cb677ffc--<title></title></head>
<script type="text/javascript"cmt:7c0bce95-66b2-428a-b38b-5e21b5b06992--
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:62f3d85c-a6ad-4224-94fb-31537bd04189--
<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:39a862a5-444c-418f-8c1d-698edb1bd185--
<Columns>
<eo:RowNumberColumn DataType="Integer" Width="20"cmt:9e554c03-6eba-4592-ae70-99d4910f4e6d--
</eo:RowNumberColumn>
<eo:StaticColumn HeaderText="Header"cmt:a5fdc7f1-89d8-4934-ace0-3ee2bc1fbf0b--
</eo:StaticColumn>
</Columns>
</eo:Grid>
<div id="divStatus" style="background-color: #E6FFFF; border: 1px solid #808080; text-align: center; width: 249px;"cmt:36403a0e-b1bf-4b83-9f92-64f347596391--</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:a3901014-b35e-4b02-8604-2cf661c829bf--
</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>