protected void Submit_Click(object sender, EventArgs e) { if (ViewState["table"] != null) { int size = proxy.GetServerFVehicleDataSize(); WCF_VFData[] vehs = new WCF_VFData[size]; vehs = proxy.GetServerFVehicleData(); // Get the DataTable from ViewState. DataTable dt = (DataTable)ViewState["table"]; for (int i = 0; i < size; ++i) { if (vehs[i].id == 0) { continue; } string strID = vehs[i].id.ToString(); DataRow dr = dt.Rows.Find(strID); vehs[i].drivertype = Convert.ToInt32(dr["DriverType"]); vehs[i].speed = Convert.ToSingle(dr["Speed"]); vehs[i].location = Convert.ToSingle(dr["Location"]); vehs[i].lane = Convert.ToInt32(dr["Lane"]); vehs[i].link = Convert.ToInt32(dr["Link"]); } proxy.SetServerFVehicleData(vehs); proxy.SetClientState((int)ClientState.VehicleUpdateSubmitted); ShowNextTimeStep(); ShowVehicles(); } }
private void ShowVehicles() { gvVehicle.DataSource = null; gvVehicle.DataBind(); DataTable table = new DataTable(); table.Columns.Add("ID"); table.Columns.Add("DriverType"); table.Columns.Add("Speed"); table.Columns.Add("Location"); table.Columns.Add("Lane"); table.Columns.Add("Link"); table.Columns.Add("TID"); table.Columns["TID"].AutoIncrement = true; table.Columns["TID"].AutoIncrementSeed = 1; table.Columns["TID"].AutoIncrementStep = 1; DataColumn[] dcKeys = new DataColumn[1]; //dcKeys[0] = table.Columns["TID"]; // use vehicle ID as the table key dcKeys[0] = table.Columns["ID"]; table.PrimaryKey = dcKeys; int size = proxy.GetServerFVehicleDataSize(); WCF_VFData v; WCF_VFData[] array = new WCF_VFData[size]; array = proxy.GetServerFVehicleData(); int ID = 0; int DType = 0; float Speed = 0; float Location = 0; int Lane = 0; int Link = 0; int nValidVFData = 0; for (int i = 0; i < size; i++) { v = array[i]; if (v.id == 0) { continue; } nValidVFData++; ID = v.id; DType = v.drivertype; Speed = v.speed; Location = v.location; Lane = v.lane; Link = v.link; table.Rows.Add(ID, DType, Speed, Location, Lane, Link, null); } TextBoxVehicleSize.Text = nValidVFData.ToString(); DataView dvVehicle = new DataView(table); ViewState["table"] = table; BindingGridView(); }