所以基本上我在Div元素中创建带有for循环的ImageButtons,
但是当我创建这个ImageButtons时我设置的onclick功能不起作用而且它不会传输。所以我猜我没有正确添加功能,虽然下面的按钮功能工作正常
protected void Page_Load(object sender, EventArgs e)
{
foreach (string strFileName in Directory.GetFiles(Server.MapPath("~/path/")))
{
ImageButton imageButton = new ImageButton();
FileInfo fileInfo = new FileInfo(strFileName);
imageButton.ImageUrl = "~/path/" + fileInfo.Name.ToString();
imageButton.Attributes.Add("ID" , strFileName);
imageButton.Attributes.Add("class","imgOne");
imageButton.Attributes.Add("runat", "server");
imageButton.Attributes.Add("OnClick", "toImageDisplay");
photos.Controls.Add(imageButton);
}
}
public void toImageDisplay()
{
Server.Transfer("ImageDisplay.aspx");
}
protected void Unnamed1_Click(object sender, EventArgs e)
{
toImageDisplay();
}
答案 0 :(得分:1)
这是我得到的:
private void LoadPictures()
{
foreach (string strFileName in Directory.GetFiles(Server.MapPath("~/path/")))
{
ImageButton imageButton = new ImageButton();
FileInfo fileInfo = new FileInfo(strFileName);
imageButton.ImageUrl = "~/path/" + fileInfo.Name.ToString();
imageButton.Click += new ImageClickEventHandler(imageButton_Click);
imageButton.ID = Path.GetFileName(strFileName);
photos.Controls.Add(imageButton);
//imageButton.Attributes.Add("ID", strFileName);
//imageButton.Attributes.Add("class", "imgOne");
//imageButton.Attributes.Add("runat", "server");
//imageButton.Attributes.Add("OnClick", "toImageDisplay");
}
}
void imageButton_Click(object sender, ImageClickEventArgs e)
{
//your code...
}
在页面加载中调用LoadPictures()。
如上所述,您需要连接点击事件而不是仅添加它。
答案 1 :(得分:0)
您需要连接事件而不是添加onclick属性。有两种方法可以解决这个问题(你不需要手动添加runat = server):
1
foreach (string strFileName in Directory.GetFiles(Server.MapPath("~/path/")))
{
ImageButton imageButton = new ImageButton();
FileInfo fileInfo = new FileInfo(strFileName);
imageButton.ImageUrl = "~/path/" + fileInfo.Name.ToString();
imageButton.Attributes.Add("ID" , strFileName);
imageButton.Click += Unnamed1_Click;
photos.Controls.Add(imageButton);
}
2。 第二个涉及javascript ...在您的代码中,而不是指定要调用的服务器端方法,只需使用:
imageButton.Attributes.Add("onclick", string.format("location.href('{0}');","whateverURL.html"));