Добавление события

AndreyEnter
Дата: 11.06.2008 09:56:10
задача: динамически формировать события к элементам на форме и события на  < body > .
как можно в C# к сформированной странице дополнительно добавить событие и метод обработки этого события.
События могут Быть написаны на JS или C#.
seagul2000
Дата: 11.06.2008 10:18:24
AndreyEnter:

задача: динамически формировать события к элементам на форме и события на  < body > .
как можно в C# к сформированной странице дополнительно добавить событие и метод обработки этого события.
События могут Быть написаны на JS или C#.

В классе контрола или страницы создаёшь делегат и событиеpublic delegate void MyDelegateEvent();
public event MyDelegateEvent MyEvent;


после вызываешь его где хочешь вот так :if(MyEvent!=null)
MyEvent();


и подписываешся на это событие где надоMyClass class=new MyClass();

class.MyEvent += new MyClass.MyDelegateEvent(Название метода обработки);

protected void Название метода обработки()
{

}


Вот как то так , если где не прав поправте.
webb
Дата: 11.06.2008 14:01:26
AndreyEnter:

задача: динамически формировать события к элементам на форме и события на  < body > .
как можно в C# к сформированной странице дополнительно добавить событие и метод обработки этого события.
События могут Быть написаны на JS или C#.

а эти события должны отрабатывать на сервере или на клиенте?
cho
Дата: 11.06.2008 17:40:13
class.MyEvent += new MyClass.MyDelegateEvent(Название метода обработки);

protected void Название метода обработки()
{

}
это отработка только серверной стороны...
чтобы не перегружать всю страницу, воспользоваться можно Callback.
AndreyEnter
Дата: 11.06.2008 22:07:11
поставлю вопрос более конкретно.
---------------------------------------
В НТМЛ пишу:
<div id="gabb" runat="server" style="cursor:pointer"></div>
--------------------------------------
В C# коде пишу:
при загруски странице.
метод написанный на JS отрабатывается отлично
а вот сделать так что бы при А = 1 , сделать событие для "gabb" которое отрабатывал бы сервер ни как не получается.

          if (A == "1") // А - глобальная переменная.
          {
            gabb.Attributes.Add("onclick", "#Sh(" + wdt.Rows[0]["ID"].ToString()"')");  не работает !!!!!
          }
          else   // Вот это работает отлично, где shoping - метод написанный на JS
          {
            gabb.Attributes.Add("onclick", "shoping(" + wdt.Rows[0]["ID"].ToString() + "," + me_tt.ToString() + ",'" + wdt.Rows[0]["NAME"] + "')");
          }
/*
    Метод который я бы хотел вызывать при А = 1 и при нажатии на "gabb"
*/
private void Sh(int i)
  {
     ;
  }

Подскажите как это реализовать ?


seagul2000
Дата: 11.06.2008 22:27:47
AndreyEnter:

поставлю вопрос более конкретно.
---------------------------------------
В НТМЛ пишу:
<div id="gabb" runat="server" style="cursor:pointer"></div>
--------------------------------------
В C# коде пишу:
при загруски странице.
метод написанный на JS отрабатывается отлично
а вот сделать так что бы при А = 1 , сделать событие для "gabb" которое отрабатывал бы сервер ни как не получается.

          if (A == "1") // А - глобальная переменная.
          {
            gabb.Attributes.Add("onclick", "#Sh(" + wdt.Rows[0]["ID"].ToString()"')");  не работает !!!!!
          }
          else   // Вот это работает отлично, где shoping - метод написанный на JS
          {
            gabb.Attributes.Add("onclick", "shoping(" + wdt.Rows[0]["ID"].ToString() + "," + me_tt.ToString() + ",'" + wdt.Rows[0]["NAME"] + "')");
          }
/*
    Метод который я бы хотел вызывать при А = 1 и при нажатии на "gabb"
*/
private void Sh(int i)
  {
     ;
  }

Подскажите как это реализовать ?


 И не должно работать , Sh это же серверная функция .

Вот поискал должно помочь http://www.gotdotnet.ru/Forums/Web/509959.aspx

NailSR
Дата: 11.06.2008 23:46:14
добавить "невидимую" кнопку, например так

<asp:button ID="btnGABB" runat="server" OnClick="btnGABB_Click" style="display:none"/>

добавить обработчик события у div'a (в "серверной" части кода):

gabb.Attributes.Add("onclick", "javascript: document.getElementById('""+btnGABB.ClientID+').click();");

ну и разумеется определить обработчик события у кнопки

protected void btnGABB_Click(object sender, EventArgs e)
{
...
}

Для передачи параметров я бы порекомендовал в этом случае использовать элемент управления HiddenField (input type=hidden), задав их значение при клике на div, но до "нажатия" на невидимую кнопку.
[MCPD:WEB]
Zorina
Дата: 12.06.2008 10:26:57
http://www.gotdotnet.ru/Forums/Web/562805.aspx
______________________________________
http://asp.net/learn/data-access/

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