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:fc00b501-cf75-4000-8021-20fd0392bdc3--<title></title></head>
<script type="text/javascript"cmt:87e5c64c-3141-4d25-87fd-e9eef1b4b420--
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:fa0750bc-f7e1-4189-8b2d-a3464cb97e0e--
<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:3072aec5-9add-4dbd-a773-ff09b3c9c765--
<Columns>
<eo:RowNumberColumn DataType="Integer" Width="20"cmt:4e5f2665-815c-45f7-a1ee-f80c670960b9--
</eo:RowNumberColumn>
<eo:StaticColumn HeaderText="Header"cmt:932c0cb4-a495-4eae-bdad-6881840513a3--
</eo:StaticColumn>
</Columns>
</eo:Grid>
<div id="divStatus" style="background-color: #E6FFFF; border: 1px solid #808080; text-align: center; width: 249px;"cmt:aec3b95f-a968-4474-9f5b-071079fa3462--</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:84679b08-c59a-4e8a-8be3-89df7072146c--
</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>