Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式添加图像按钮+;点击_C#_Asp.net_Imagebutton - Fatal编程技术网

C# 以编程方式添加图像按钮+;点击

C# 以编程方式添加图像按钮+;点击,c#,asp.net,imagebutton,C#,Asp.net,Imagebutton,我有一个创建一些图像按钮的方法。 我在下面加了一行: btnCity.Click+=新建图像ClickEventHandler(btnCity\u Click); 方法来对单击事件进行编码 根据@Jacek的请求,在添加按钮的地方添加代码: private void LocateCities() { IDBManager dbManager = new DBManager(DataProvider.SqlServer); dbManager.ConnectionString = @"Data S

我有一个创建一些图像按钮的方法。 我在下面加了一行: btnCity.Click+=新建图像ClickEventHandler(btnCity\u Click); 方法来对单击事件进行编码

根据@Jacek的请求,在添加按钮的地方添加代码:

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();
}
}
我还创建了以下方法来处理单击事件:

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

但它不起作用。有什么建议吗?

在执行响应时。写下您需要呼叫响应的内容。首先清除并响应。然后结束


此外,我通常发现在链接按钮中放置img标签比图像按钮效果更好。

我解决了这个问题。城市添加到页面的方法仅在if(!page.IsPostBack)中。我将它添加到了else中,现在可以使用了。

调试器是否进入了您的方法?请始终澄清“它不起作用”。什么不起作用?您是否出现错误,您是否得到了与预期不同的输出,如果是,具体差异是什么,等等。此外,在这种情况下,请务必解释您是如何观察到哪些是/不起作用的;即使操作正常,也有可能观察到不正确的行为。如果您创建动态控件-您需要在每次回发时重新创建它们-您这样做了吗?值得注意的是,在ASP中动态添加控件的大多数实例不需要这样做,而且实际上更容易和更有效地避免它。考虑使用<代码> DATGRIDVIEW 或,在这种情况下,<代码>中继器< /C> >指定模板,然后将动态数据绑定到该模板。我发现它比动态创建的控件更容易使用。将代码粘贴到创建控件的位置