예제 #1
0
    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();
        }
    }
예제 #2
0
    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();
    }