2012-03-19 6 views
1

このメソッドは、そこにあるwebFormにはないcsクラスにあります。divとクラスを作成しますが、メソッドを作成します。(objImage.Attributes.Add("OnClientClick", "amethod(objRssItem)");) amethodはWebフォームにある別の.csにあります。私は画像ボタンをクリックすると、このメソッドを動作させることができません。 どうすればいいですか?ありがとうImageButtonにメソッドを追加することで.cs側からdiv要素にアクセスする方法#

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.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", "amethod(objRssItem)"); 
     objDiv.Controls.Add(objImage); 

     return objDiv; 
    } 

答えて

0

OnClientClickはJavaScript用です。私はあなたがcsメソッドを呼び出すことを考えていると信じています。 csメソッドを呼び出す場合は、それをクリアする必要があります。ボタンのコードの後ろにあるクリック機能を使用します。問題は、これは動的オブジェクトである場合には(あなたが示すように。)そして、この

objImage.Click += myfunctiontocall; 

が、これはポストバックに起こるのだろう覚えておいてください試してみて、あなたがいない場合は(同じクリックハンドラを持つ)オブジェクトを再作成あなたの関数の呼び出しは機能しません。毎回「再配線」する必要があります。


イベントにパラメータを与えるには、そのようにクロージャをラップすることができます。

var duck = objRssItem; 

    objImage.Click += (s,e) => { WebForm4.amethod (duck); }; 

クロージャを覚えておいてくださいトリッキーなビジネスです - あなたはグローバルになってきているものとamethod呼んでいます。奇妙なことが起こる可能性があります。

+0

私はobjImage.Click + = WebForm4.amethod(objRssItem);を記述します。しかし、私は動作しませんし、それはsimpicityは無効に.....に変換することはできませんエラーを与える – leventkalay92

+0

クリックイベントは、パラメータを持つことはできません。 – Hogan

+0

私は閉鎖でそれを行う方法を投稿します。 – Hogan

関連する問題