1

我正在创建 ASP.NET wep 页面。我有一张世界地图,我想在 C# 中添加一些图像按钮(城市)控件。我做了这个方法:

我正在使用存储过程从数据库中获取数据,但是当我将下一个城市添加到过程中时,先前添加的图像按钮会更改其位置。

private void LocateCities()
{
IDBManager dbManager = new DBManager(DataProvider.SqlServer);
dbManager.ConnectionString = @"Data Source=server; Initial Catalog=db;  Integrated Security = SSPI;";
try
{
    dbManager.Open();
    dbManager.CreateParameters(2);
    dbManager.AddParameters(0, "@Function", "All");
    dbManager.AddParameters(1, "@Team", "All");
    DataSet ds = new DataSet("Stuff");
    ds = dbManager.ExecuteDataSet(CommandType.StoredProcedure, "sp_select_staff_and_cities");                    

    foreach (DataRow dr in ds.Tables[0].Rows)
    {
        int xaxis = Convert.ToInt32(dr["xaxis"]) ;
        int yaxis = Convert.ToInt32(dr["yaxis"]) ;
        int textxaxis = xaxis + 30;
        int textyaxis = yaxis - 10;

        ImageButton btnCity = new ImageButton();
        btnCity.ImageUrl = "~/Images/cyanball1.gif";
        btnCity.Height = 10;
        btnCity.Attributes.Add("style", "Z-INDEX:100; POSITION:relative; left:" + xaxis + "px; TOP:" + yaxis + "px; Left:10px;Right:10px");

        Label lblCity = new Label();
        lblCity.Text = dr["city"].ToString();
        lblCity.Attributes.Add("style", "Z-INDEX: 100;POSITION:relative; left:" + textxaxis + "px; TOP:" + textyaxis + "px");

        PanelMap.Controls.Add(lblCity);
        PanelMap.Controls.Add(btnCity);    
    }
}
catch (Exception ex)
{
    Response.Write(ex.ToString());
}
finally
{
    dbManager.Dispose();
}
}

我正在使用面板将图像与地图一起保存:.PanelMap { width:960px; 高度:572px;文本对齐:左;}

在上面的代码中应该改变什么来保持点在它的位置?

我尝试使用 position:absolute 但它导致位置是相对于页面派生的,我希望它相对于面板控件派生。

4

1 回答 1

1

问题将是 this, POSITION:relative,所以POSITION:absolute在两条线上都将其更改为,你会很好的。

于 2013-06-10T23:30:04.990 回答