我正在创建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 { 宽度:960像素; 高度:572px; 文本对齐:左; }
在上面的代码中应该更改哪些内容以保持其位置?
我尝试使用position:absolute但是它导致相对于页面导出了posiotion,我希望它相对于面板控件派生。
答案 0 :(得分:1)
问题就是这个,POSITION:relative
,所以在两条线路上将其更改为POSITION:absolute
,你就会很好。