我想在单击图像按钮时调用方法,但我无法在htmlgenericcontrol中添加或调用。我的代码如下:
我试过这段代码:
var duck = objRssItem;
objImage.Click += (s, e) => { WebForm4.amethod(objRssItem); };
但它不起作用。我需要发送objRssItem。
public HtmlGenericControl CreateDIV_OyVerme_Sub_Yildiz(string id, int subId, Rss.Items objRssItem)
{
HtmlGenericControl objDiv = new HtmlGenericControl("div");
objDiv.ID = strControlName_DivYildiz + id + "_" + subId;
objDiv.Attributes.Add("class", strClassName_DivYildiz);
//objDiv.Attributes.Add("runat", "server");
ImageButton objImage = new ImageButton();
objImage.Attributes.Add("runat", "server");
//objImage.Src = strImgSrc_yildiz;
//objImage.Click += new ImageClickEventHandler(WebForm4.ImageButtons_Click);
objImage.ID = strControlName_ImageYildiz + id +"_" + subId;
objImage.ImageUrl = strImgSrc_yildiz;
objImage.OnClientClick = strOnClientClickFunc_yildiz;
// objImage.Attributes.Add("OnClick","WebForm4.amethod (objRssItem);");
objImage.Style.Add(HtmlTextWriterStyle.Height, "19px");
objImage.Style.Add(HtmlTextWriterStyle.Width, "20px");
objImage.Style.Add(HtmlTextWriterStyle.BorderWidth, "0px");
objImage.Style.Add(HtmlTextWriterStyle.Position, "relative");
objImage.Style.Add(HtmlTextWriterStyle.Top, "13px");
objImage.Style.Add(HtmlTextWriterStyle.Left, "6px");
objImage.Style.Add("float", "left");
objImage.ToolTip = subId + "/" + 5;
// calling the method
// objImage.Attributes.Add("OnClientClick", "return(GetRssID(objRssItem));");
var duck = objRssItem;
objImage.Click += (s, e) => { WebForm4.amethod(objRssItem); };
//objImage.Click += WebForm4.amethod (objRssItem);
objDiv.Controls.Add(objImage);
return objDiv;
}
答案 0 :(得分:0)
您无法在添加事件处理程序时传递参数。
为了这个目的,我建议使用ImageButtons
的{{3}}属性。请注意,RssItem
只要不是字符串就不能用作CommandArgument
,因为它必须呈现为HTML。
通常你会使用ID
(或标识它的任何东西)。然后,您可以在事件处理程序中使用它来创建RssItem
实例(如果需要)。
objImage.CommandArgument = objRssItem.ID;