472,779 Members | 1,751 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,779 software developers and data experts.

Problem with datatable in asp.net page


I am working with an 'in session' ado dataset with an asp.net application.
My dataset is comprised of two tables, one of which maintains a few
calculated datacolumns. For some reason these datacolumns do not trigger
their expression when other columns from which the expressions are derived
are updated. Below is a basic example of what I am doing.

User enters values into an asp.net form and clicks a button.
Retrieve dataset from session object.
Dimension a procedure level array (A) of datarows.
Dimension a single datarow (S) as equal to datatable.newrow for the relevant
datatable (T)
Iterate through the values from the webform and add them to the appropriate
datarow.items for the single datarow (S)

(at this stage I believe the expression based columns should trigger their
value - but they are not showing when watched)

Add this new row (S) to the array of datarows (A).

(Depending on values in webform this process might be repeated with further
additions to the array)

Array (A) is passed off to another procedure.
New procedure retrieves dataset from session object.
Array (A) is iterated through with additional datarow.item values being
As iterated, each datarow is added to the relevant datatable as referenced
through the retrieved dataset.

(at this stage when watching the datarows, their expression is not triggered
before or after addition to the datatable)

Procedure then calls acceptchanges on dataset.

(still no expression values - all calculated column items return
system.dbnull - all other values appear as required)


I've included the rather extensive code for this below if anyone wants to
wade through it for me :). I belive I am doing something simple
incorrectly, but would greatly appreciate any advice or help.



(you'll notice from the quote that i am not really passing the array from
one procedure to another, but using a readonly property from one of the
forms to access the array)

This form is where the user clicks the Insert button, it then requests the
array of datarows from the second form (a user control), and attempts to add
them to the datatable.

Private Sub InsertNow_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles InsertNow.Click

Dim InsertRows() As DataRow

Dim insertrow As DataRow

Dim QuoteDS As New quotes(Session, context)

Dim QuoteTable As DataTable = QuoteDS.TableProd

InsertRows = CType(Me.MainPanel.Controls(1), ins_ITQ).ProductRows

CType(Me.MainPanel.Controls(1), ins_ITQ).ClearPanel()

If InsertRows.Length > 0 Then

Dim maintable As DataTable = dsQuote.TableProd

Dim maxorder As Integer

If maintable.Select("Groupname = '" & InsertGroup.SelectedItem.Text &
"'").Length > 0 Then

MaxOrder = (maintable.Compute("max(order)", "groupname = '" &
InsertGroup.SelectedItem.Text & "'")) + 1


MaxOrder = 0

End If

Dim count As Integer

For count = 0 To InsertRows.Length - 1

insertrow = InsertRows(count)

insertrow.Item("order") = maxorder

insertrow.Item("groupname") = Me.InsertGroup.SelectedItem.Text





Dim lc As New LiteralControl

lc.EnableViewState = False

lc.Text = "<script>window.opener.ForcePostBack(true);</script>"


End If

End Sub

--== This next form is the user control - i've removed uneccessary code, to
primarily show the readonly property that returns the datarow array

Public Class ins_ITQ

Inherits System.Web.UI.UserControl

Private QuoteDS As quotes
Public ReadOnly Property ProductRows() As DataRow()


If Page.IsValid Then

Dim CheckedRows() As Janus.Web.GridEX.GridEXRow

CheckedRows = gdTagged.GetCheckedRows

If CheckedRows.Length > 0 Then

Dim count As Int16

Dim CheckedDataRw As DataRow

Dim TaggedTable As DataTable = RetrieveTagged()

Dim IFcrm As New crmIF.Custom.crmIF(Net.CredentialCache.DefaultCred entials)

Dim prodRows(CheckedRows.Length - 1) As DataRow

For count = 0 To CheckedRows.Length - 1

Dim prodRow As DataRow = CType(QuoteDS.TableProd, DataTable).NewRow

CheckedDataRw = TaggedTable.Rows.Find(CheckedRows(count).DataKeyVa lue)

prodRow.Item("code") = CheckedDataRw.Item("productCode")

prodRow.Item("vendorcode") = "" 'CheckedDataRw.item("")

prodRow.Item("description") = CheckedDataRw.Item("productName")

prodRow.Item("details") = "" 'CheckedDataRw.item("")

prodRow.Item("detailsfull") = "" 'CheckedDataRw.item("")

prodRow.Item("showspec") = True

prodRow.Item("image") = "" 'CheckedDataRw.item("")

prodRow.Item("tier1") = "" 'CheckedDataRw.item("")

prodRow.Item("tier2") = "" 'CheckedDataRw.item("")

prodRow.Item("tier3") = "" 'CheckedDataRw.item("")

prodRow.Item("tier4") = "" 'CheckedDataRw.item("")

prodRow.Item("vendor") = "" 'CheckedDataRw.item("")

Dim supID As String

supID = IFcrm.ReturnAccountID(CheckedDataRw.Item("supplier Name"))

If supID <> "" Then

prodRow.Item("supplier") = supID


prodRow.Item("supplier") = "Unrecognised"

End If

prodRow.Item("stock") = 0 'CheckedDataRw.item("")

'prodRow.Item("eta") =

prodRow.Item("origcostex") = CheckedDataRw.Item("costEx")

prodRow.Item("costex") = CheckedDataRw.Item("costEx")

prodRow.Item("costinc") = CheckedDataRw.Item("costEx") * (1 +
System.Configuration.ConfigurationSettings.AppSett ings("gstrate"))

prodRow.Item("sellex") = CheckedDataRw.Item("sellEx")

prodRow.Item("sellinc") = CheckedDataRw.Item("sellEx") * (1 +
System.Configuration.ConfigurationSettings.AppSett ings("gstrate"))

prodRow.Item("rrpex") = CheckedDataRw.Item("rrpEx")

prodRow.Item("rrpinc") = CheckedDataRw.Item("rrpEx") * (1 +
System.Configuration.ConfigurationSettings.AppSett ings("gstrate"))

prodRow.Item("brochure") = ""

CheckedDataRw.Item("used") = True

prodRows(count) = prodRow


Return prodRows

End If

End If

End Get

End Property

--== this is the underlying class used to manage the session object dataset
(the calculated columns are prof, grpformatted)

Public Class quotes

Private session As System.Web.SessionState.HttpSessionState

Private context As HttpContext

Private crmIF1 As crmIF.Custom.crmIF

Public ReadOnly Property TableGrp() As DataTable


Return RetrieveTable("Group")

End Get

End Property

Public ReadOnly Property TableProd() As DataTable


Return RetrieveTable("Product")

End Get

End Property

Public ReadOnly Property DS() As DataSet


If IsNothing(session.Item(context.User.Identity.Name & "DS")) Then


End If

Return CType(session.Item(context.User.Identity.Name & "DS"), DataSet)

End Get

End Property

Protected WithEvents dsQuoteProducts As System.Data.DataSet

Protected WithEvents Groups As System.Data.DataTable

Protected WithEvents order As System.Data.DataColumn

Protected WithEvents name As System.Data.DataColumn

Protected WithEvents explanation As System.Data.DataColumn

Protected WithEvents shwnote As System.Data.DataColumn

Protected WithEvents shwtotal As System.Data.DataColumn

Protected WithEvents pid As System.Data.DataColumn

Protected WithEvents Products As System.Data.DataTable

Protected WithEvents code As System.Data.DataColumn

Protected WithEvents vendorcode As System.Data.DataColumn

Protected WithEvents description As System.Data.DataColumn

Protected WithEvents qty As System.Data.DataColumn

Protected WithEvents details As System.Data.DataColumn

Protected WithEvents detailsfull As System.Data.DataColumn

Protected WithEvents showspec As System.Data.DataColumn

Protected WithEvents image As System.Data.DataColumn

Protected WithEvents tier1 As System.Data.DataColumn

Protected WithEvents tier2 As System.Data.DataColumn

Protected WithEvents tier3 As System.Data.DataColumn

Protected WithEvents tier4 As System.Data.DataColumn

Protected WithEvents vendor As System.Data.DataColumn

Protected WithEvents supplier As System.Data.DataColumn

Protected WithEvents stock As System.Data.DataColumn

Protected WithEvents eta As System.Data.DataColumn

Protected WithEvents origcostex As System.Data.DataColumn

Protected WithEvents cstex As System.Data.DataColumn

Protected WithEvents cstinc As System.Data.DataColumn

Protected WithEvents sllex As System.Data.DataColumn

Protected WithEvents sllinc As System.Data.DataColumn

Protected WithEvents rrpx As System.Data.DataColumn

Protected WithEvents rrpi As System.Data.DataColumn

Protected WithEvents ordercol As System.Data.DataColumn

Protected WithEvents brochure As System.Data.DataColumn

Protected WithEvents grpnamecol As System.Data.DataColumn

Protected WithEvents cidcol As System.Data.DataColumn

Protected WithEvents colGroupID As System.Data.DataColumn

Protected WithEvents groupOrder As System.Data.DataColumn

Protected WithEvents colgrpFormatted As System.Data.DataColumn

Protected WithEvents DataColumn1 As System.Data.DataColumn 'Declare Dataset

Public Sub New(ByVal Sess As SessionState.HttpSessionState, ByVal Cont As

session = Sess

context = Cont

If IsNothing(Sess(Cont.User.Identity.Name & "DS")) Then



End If

End Sub

Public Sub InitDS()

Me.dsQuoteProducts = New System.Data.DataSet

Me.Groups = New System.Data.DataTable

Me.order = New System.Data.DataColumn

Me.name = New System.Data.DataColumn

Me.explanation = New System.Data.DataColumn

Me.shwnote = New System.Data.DataColumn

Me.shwtotal = New System.Data.DataColumn

Me.pid = New System.Data.DataColumn

Me.Products = New System.Data.DataTable

Me.code = New System.Data.DataColumn

Me.vendorcode = New System.Data.DataColumn

Me.description = New System.Data.DataColumn

Me.qty = New System.Data.DataColumn

Me.details = New System.Data.DataColumn

Me.detailsfull = New System.Data.DataColumn

Me.showspec = New System.Data.DataColumn

Me.image = New System.Data.DataColumn

Me.tier1 = New System.Data.DataColumn

Me.tier2 = New System.Data.DataColumn

Me.tier3 = New System.Data.DataColumn

Me.tier4 = New System.Data.DataColumn

Me.vendor = New System.Data.DataColumn

Me.supplier = New System.Data.DataColumn

Me.stock = New System.Data.DataColumn

Me.eta = New System.Data.DataColumn

Me.origcostex = New System.Data.DataColumn

Me.cstex = New System.Data.DataColumn

Me.cstinc = New System.Data.DataColumn

Me.sllex = New System.Data.DataColumn

Me.sllinc = New System.Data.DataColumn

Me.rrpx = New System.Data.DataColumn

Me.rrpi = New System.Data.DataColumn

Me.ordercol = New System.Data.DataColumn

Me.grpnamecol = New System.Data.DataColumn

Me.cidcol = New System.Data.DataColumn

Me.brochure = New System.Data.DataColumn

Me.colGroupID = New System.Data.DataColumn

Me.groupOrder = New System.Data.DataColumn

Me.colgrpFormatted = New System.Data.DataColumn

Me.DataColumn1 = New System.Data.DataColumn

Me.brochure = New System.Data.DataColumn

System.ComponentModel.ISupportInitialize).BeginIni t()

CType(Me.Groups, System.ComponentModel.ISupportInitialize).BeginIni t()

CType(Me.Products, System.ComponentModel.ISupportInitialize).BeginIni t()




Me.dsQuoteProducts.DataSetName = "dsQuoteProducts"

Me.dsQuoteProducts.Locale = New System.Globalization.CultureInfo("en-AU")

Me.dsQuoteProducts.Relations.AddRange(New System.Data.DataRelation() {New
System.Data.DataRelation("Relation1", "Groups", "Products", New String()
{"name"}, New String() {"groupname"}, False), New
System.Data.DataRelation("Relation2", "Groups", "Products", New String()
{"id"}, New String() {"groupid"}, False), New
System.Data.DataRelation("Relation3", "Groups", "Products", New String()
{"order"}, New String() {"groupOrder"}, False)})

Me.dsQuoteProducts.Tables.AddRange(New System.Data.DataTable() {Me.Groups,




Me.Groups.Columns.AddRange(New System.Data.DataColumn() {Me.order, Me.name,
Me.explanation, Me.shwnote, Me.shwtotal, Me.pid})

Me.Groups.Constraints.AddRange(New System.Data.Constraint() {New
System.Data.UniqueConstraint("Constraint1", New String() {"order"}, False),
New System.Data.UniqueConstraint("Constraint2", New String() {"id"}, True),
New System.Data.UniqueConstraint("Constraint3", New String() {"name"},

Me.Groups.PrimaryKey = New System.Data.DataColumn() {Me.pid}

Me.Groups.TableName = "Groups"




Me.order.AllowDBNull = False

Me.order.Caption = "order"

Me.order.ColumnName = "order"

Me.order.DataType = GetType(System.Int32)




Me.name.AllowDBNull = False

Me.name.Caption = "name"

Me.name.ColumnName = "name"



Me.brochure.AllowDBNull = True

Me.brochure.Caption = "brochure"

Me.brochure.DataType = GetType(System.String)



Me.explanation.ColumnName = "explanation"




Me.shwnote.AllowDBNull = False

Me.shwnote.ColumnName = "shwnote"

Me.shwnote.DataType = GetType(System.Boolean)

Me.shwnote.DefaultValue = False




Me.shwtotal.AllowDBNull = False

Me.shwtotal.ColumnName = "shwtotal"

Me.shwtotal.DataType = GetType(System.Boolean)

Me.shwtotal.DefaultValue = False




Me.pid.AllowDBNull = False

Me.pid.AutoIncrement = True

Me.pid.Caption = "id"

Me.pid.ColumnName = "id"

Me.pid.DataType = GetType(System.Int32)




Me.Products.Columns.AddRange(New System.Data.DataColumn() {Me.code,
Me.vendorcode, Me.description, Me.qty, Me.details, Me.detailsfull,
Me.showspec, Me.image, Me.tier1, Me.tier2, Me.tier3, Me.tier4, Me.vendor,
Me.supplier, Me.stock, Me.eta, Me.origcostex, Me.cstex, Me.cstinc, Me.sllex,
Me.sllinc, Me.rrpx, Me.rrpi, Me.ordercol, Me.grpnamecol, Me.cidcol,
Me.colGroupID, Me.groupOrder, Me.colgrpFormatted, Me.DataColumn1,

Me.Products.Constraints.AddRange(New System.Data.Constraint() {New
System.Data.UniqueConstraint("Constraint1", New String() {"cid"}, True), New
System.Data.ForeignKeyConstraint("Relation1", "Groups", New String()
{"name"}, New String() {"groupname"}, System.Data.AcceptRejectRule.None,
System.Data.Rule.Cascade, System.Data.Rule.Cascade), New
System.Data.ForeignKeyConstraint("Relation2", "Groups", New String() {"id"},
New String() {"groupid"}, System.Data.AcceptRejectRule.None,
System.Data.Rule.Cascade, System.Data.Rule.Cascade), New
System.Data.ForeignKeyConstraint("Relation3", "Groups", New String()
{"order"}, New String() {"groupOrder"}, System.Data.AcceptRejectRule.None,
System.Data.Rule.Cascade, System.Data.Rule.Cascade)})

Me.Products.PrimaryKey = New System.Data.DataColumn() {Me.cidcol}

Me.Products.TableName = "Products"






Me.brochure.AllowDBNull = True

Me.brochure.ColumnName = "brochure"


Me.code.AllowDBNull = False

Me.code.ColumnName = "code"




Me.vendorcode.ColumnName = "vendorcode"




Me.description.ColumnName = "description"




Me.qty.AllowDBNull = False

Me.qty.ColumnName = "qty"

Me.qty.DataType = GetType(System.Int16)

Me.qty.DefaultValue = CType(1, Short)




Me.details.ColumnName = "details"




Me.detailsfull.ColumnName = "detailsfull"




Me.showspec.ColumnName = "showspec"

Me.showspec.DataType = GetType(System.Boolean)




Me.image.ColumnName = "image"




Me.tier1.ColumnName = "tier1"




Me.tier2.ColumnName = "tier2"




Me.tier3.ColumnName = "tier3"




Me.tier4.ColumnName = "tier4"




Me.vendor.ColumnName = "vendor"




Me.supplier.ColumnName = "supplier"




Me.stock.ColumnName = "stock"

Me.stock.DataType = GetType(System.Int32)




Me.eta.ColumnName = "eta"

Me.eta.DataType = GetType(System.DateTime)

Me.eta.AllowDBNull = True




Me.origcostex.ColumnName = "origcostex"

Me.origcostex.DataType = GetType(System.Decimal)




Me.cstex.ColumnName = "costex"

Me.cstex.DataType = GetType(System.Decimal)




Me.cstinc.Caption = "costinc"

Me.cstinc.ColumnName = "costinc"

Me.cstinc.DataType = GetType(System.Decimal)




Me.sllex.ColumnName = "sellex"

Me.sllex.DataType = GetType(System.Decimal)




Me.sllinc.ColumnName = "sellinc"

Me.sllinc.DataType = GetType(System.Decimal)




Me.rrpx.ColumnName = "rrpex"

Me.rrpx.DataType = GetType(System.Decimal)




Me.rrpi.ColumnName = "rrpinc"

Me.rrpi.DataType = GetType(System.Decimal)




Me.ordercol.AllowDBNull = False

Me.ordercol.ColumnName = "order"

Me.ordercol.DataType = GetType(System.Int32)




Me.grpnamecol.AllowDBNull = False

Me.grpnamecol.ColumnName = "groupname"




Me.cidcol.AllowDBNull = False

Me.cidcol.AutoIncrement = True

Me.cidcol.Caption = "cid"

Me.cidcol.ColumnName = "cid"

Me.cidcol.DataType = GetType(System.Int32)




Me.colGroupID.ColumnName = "groupid"

Me.colGroupID.DataType = GetType(System.Int32)




Me.groupOrder.ColumnName = "groupOrder"

Me.groupOrder.DataType = GetType(System.Int32)




Me.colgrpFormatted.ColumnName = "grpFormatted"

Me.colgrpFormatted.Expression = "'[' + iif(groupOrder > 9, groupOrder, '0' +
groupOrder) + '] ' + groupname"

Me.colgrpFormatted.ReadOnly = True




Me.DataColumn1.ColumnName = "prof"

Me.DataColumn1.DataType = GetType(System.Decimal)

Me.DataColumn1.Expression = "qty*costex"

Me.DataColumn1.ReadOnly = True

System.ComponentModel.ISupportInitialize).EndInit( )

CType(Me.Groups, System.ComponentModel.ISupportInitialize).EndInit( )

CType(Me.Products, System.ComponentModel.ISupportInitialize).EndInit( )

End Sub

Private Sub CreateDS()

If IsNothing(session.Item(context.User.Identity.Name & "DS")) Then

session.Add(context.User.Identity.Name & "DS", Me.dsQuoteProducts)

End If


End Sub

Private Sub CreateGroupTable()

Dim GroupTable As DataTable

Dim GroupKey(0) As DataColumn

Dim drGroup As DataRow

GroupTable = RetrieveTable("Group")

drGroup = GroupTable.NewRow

drGroup.Item(0) = 0

drGroup.Item(1) = "Unassigned"

drGroup.Item(2) = ""

drGroup.Item(3) = False

drGroup.Item(4) = False


End Sub

Private Function RetrieveTable(ByVal TableName As String) As DataTable

Select Case TableName

Case "Group"

If IsNothing(session.Item(context.User.Identity.Name & "DS")) Then


End If

Return CType(session.Item(context.User.Identity.Name & "DS"),

Case "Product"

If IsNothing(session.Item(context.User.Identity.Name & "DS")) Then


End If

Return CType(session.Item(context.User.Identity.Name & "DS"),

End Select

End Function

Public Function RetrieveSuppliers(ByVal UserCred As Net.NetworkCredential,
ByVal Refresh As Boolean) As DataSet

If IsNothing(session.Item("Suppliers")) Or Refresh = True Then

crmIF1 = New crmIF.Custom.crmIF(UserCred)

Dim qResults = crmIF1.ExecuteQuery("<fetch mapping='logical'><entity
name='account'><all-attributes/><filter type='and'><condition attribute =
'customertypecode' operator='eq' value='10'/></filter></entity></fetch>")

Dim dsSuppliers As New DataSet

dsSuppliers.ReadXml(New IO.StringReader(qResults))

session.Add("Suppliers", dsSuppliers)

End If

Return session.Item("Suppliers")

End Function

Public Function RetrieveSupplierNames(ByVal UserCred As
Net.NetworkCredential, ByVal Refresh As Boolean) As DataSet

If IsNothing(session.Item("Suppliers")) Or Refresh = True Then

crmIF1 = New crmIF.Custom.crmIF(UserCred)

Dim qResults = crmIF1.ExecuteQuery("<fetch mapping='logical'><entity
name='account'><attribute name ='name'/><attribute name='accountid'
/><filter type='and'><condition attribute = 'customertypecode' operator='eq'

Dim dsSuppliers As New DataSet

dsSuppliers.ReadXml(New IO.StringReader(qResults))

session.Add("Suppliers", dsSuppliers)

End If

Return session.Item("Suppliers")

End Function

End Class

Nov 18 '05 #1
0 3062

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

by: Spooki71 | last post by:
Hi, running .net v1.1 framework win2000 iis5. I've got this random problem that is just driving me crazy and I'm hoping somebody can help. So here goes: I have a .net app that has a login page...
by: Inigo Jimenez | last post by:
I have an ASP .net web application installed in a Windows 2003 server. This web application has a webform that has a Datagrid. This Datagrid is filled with the data of a SQL table. I have a...
by: The Alchemist | last post by:
I am having a problem with a dynamically-generated Datagrid. It is important to point out that this problem does not exist with a design-time created Datagrid, but only with a dynamically generated...
by: Brian Henry | last post by:
Hi, I am having a problem with an attachment system I made... it works with files up to ~3MB in size then after that if you try to upload a file it just goes to a "Page can not be displayed" page...
by: ven | last post by:
Hello i have a dynamic datatable in my page. I wanna to write data to textboxes and after click on button "ADD data" i want to refresh datagrid on page... Here is my code : ' Insert page code...
by: Tim::.. | last post by:
Hi... I'm having a big problem with a datagrid that obtains data from 2 different locations... Active Directory and SQL Database The data is inserted into a datatable and the sorted by a...
by: Brad Baker | last post by:
I'm trying to write a simple asp.net page which updates some data in a SQL database. At the top of the page I have the following code: <%@ Page Language="C#" Debug="true" %> <%@ import...
by: rupalirane07 | last post by:
Both grids displays fine. But the problem is only parent datagrid sorting works fine but when i clik on child datagrid for sorting it gives me error: NullReferenceException error Any...
by: mimifara | last post by:
Good Morning, I have a problem with my listbox control, and i tried everything i found on the web but maybe i'm still missing something. I have a listbox that i control with a datatable <the data...
by: Rina0 | last post by:
Cybersecurity engineering is a specialized field that focuses on the design, development, and implementation of systems, processes, and technologies that protect against cyber threats and...
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
by: linyimin | last post by:
Spring Startup Analyzer generates an interactive Spring application startup report that lets you understand what contributes to the application startup time and helps to optimize it. Support for...
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
by: kcodez | last post by:
As a H5 game development enthusiast, I recently wrote a very interesting little game - Toy Claw ((http://claw.kjeek.com/))。Here I will summarize and share the development experience here, and hope it...
by: Taofi | last post by:
I try to insert a new record but the error message says the number of query names and destination fields are not the same This are my field names ID, Budgeted, Actual, Status and Differences ...
by: DJRhino1175 | last post by:
When I run this code I get an error, its Run-time error# 424 Object required...This is my first attempt at doing something like this. I test the entire code and it worked until I added this - If...
by: Rina0 | last post by:
I am looking for a Python code to find the longest common subsequence of two strings. I found this blog post that describes the length of longest common subsequence problem and provides a solution in...
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.