как получить доступ к элементам div со стороны .cs, добавив метод в ImageButton в c # - PullRequest
1 голос
/ 19 марта 2012

Этот метод находится в классе cs, которого нет в webForm. Я создаю некоторые div и классы, но я хочу создать метод ( objImage.Attributes.Add("OnClientClick", "amethod(objRssItem)"); ) amethod находится в другом .cs, который находится в веб-форме.Я не могу работать этот метод, когда я нажимаю кнопку изображения.Как мне это сделать?спасибо

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

1 Ответ

0 голосов
/ 19 марта 2012

OnClientClick для JavaScript.Я полагаю, вы хотите вызвать метод CS.Если вы хотите вызвать метод cs, это должно быть понятно.Вы используете функцию щелчка кода позади кнопки.Если проблема в том, что это динамический объект (как вы показываете). Затем попробуйте это

  objImage.Click += myfunctiontocall;

Помните, что это произойдет при обратной передаче, и если вы не создадите заново объект (с тем же обработчиком кликов)) вызов вашей функции не будет работать.Вам нужно «заново подключать» его каждый раз.


Чтобы задать параметр событию, вы можете обернуть замыкание следующим образом.

  var duck = objRssItem;

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

Помните, что замыкания сложныбизнес - вы называете метод с тем, что стало глобальным.Странные вещи могут случиться.

...