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:f770258b-f73a-49e9-98e7-e315ad2c8a16--<title></title></head>
<script type="text/javascript"cmt:9c1132c6-eff8-4804-9dd3-89bdb33d3cf3--
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:b2331f35-89d3-49d6-929e-ee06db032a02--
<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:9270f1bc-4ec2-4166-8aec-cbebd0a7cfbb--
<Columns>
<eo:RowNumberColumn DataType="Integer" Width="20"cmt:30e2dade-0248-40ce-991b-581985a99956--
</eo:RowNumberColumn>
<eo:StaticColumn HeaderText="Header"cmt:275f533a-a278-450e-9b82-147122df548b--
</eo:StaticColumn>
</Columns>
</eo:Grid>
<div id="divStatus" style="background-color: #E6FFFF; border: 1px solid #808080; text-align: center; width: 249px;"cmt:9715ff71-5929-4a34-ac3a-906e00f32ba1--</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:81b9de5e-3186-45d3-a973-f507de6e1af1--
</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>