2013-06-11 176 views
0

我有一個方法,我正在創建一些圖像按鈕。我添加了下面的行: btnCity.Click + = new ImageClickEventHandler(btnCity_Click); 給代碼點擊事件的方法。編程添加圖像按鈕+點擊

在@亞切克的請求添加代碼中添加按鈕:

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(); 
} 
} 

我也在下面的方法創建以處理Click事件:

void btnCity_Click(object sender, ImageClickEventArgs e) 
{ 
    ImageButton btnCity = (ImageButton)sender; 
    Response.Write("works"); 
} 

,但它不工作。任何建議它應該是什麼樣子?

+0

調試器是否進入你的方法? – Jacek

+0

總是澄清,「它不起作用。」什麼沒有用?你是否得到一個錯誤,是否得到了不同的輸出,如果是這樣,具體的區別是什麼等等。此外,在這種情況下,一定要解釋你是如何觀察什麼是/不工作的;即使它正在工作,您也可能會觀察到行爲不正確。 – Servy

+0

如果您創建動態控件 - 您需要在每次回發時重新創建它們 - 您是否這樣做? –

回答

0

我解決了這個問題。只有在if(!Page.IsPostBack)的情況下,城市纔會進入頁面的方法。我將它添加到其他地方,現在它可以工作。

0

在做Response.Write時,需要先調用Response.Clear,然後調用Response.End。

另外,我一般發現,將一個img標籤放在一個linkbutton中比圖像按鈕更好。