2011-12-21 2 views
1

Я пытаюсь использовать обработчик кликов. Моя функция как так (они оба в одном классе):Ext.NET Click Handler string

[DirectMethod] 
protected bool Save() 
{ 
     //do work 
} 

и я попытался назвать его:

using (Ext.Net.Button yes = new Ext.Net.Button()) 
{ 
    // random set up for button 

    // failed because it couldn't find namespace 
    yes.Listeners.Click.Handler = "Namespace.Class.Save();"; 

    // attempt 2: removed the first one and assumed that the [DirectMethod] sets 
    // it to be Ext.net.DirectMethods.Save(); 
    yes.Listeners.Click.Handler = "Ext.net.DirectMethods.Save();" 

} 

Сначала не удалось не удалось найти пространство имен, второй не удалось, потому что «объект Безразлично 't поддерживать это свойство или метод. "

Какую строку я использую для рендеринга? Если не по способу Listeners.Click.Handler, как еще я могу это сделать?

Функция находится в настраиваемом элементе управления, который расширяет Ext.Net.Window, а используемый элемент находится в функции с именем Display(), которая отображает элемент управления.

Per ответ vladsch, я изменил его:

[DirectMethod(Namespace="MyMethods")] 
public bool Save() 
{ 
     //do work 
} 

и строка обработчика теперь:

yes.Listeners.Click.Handler = "MyMethods.Save();" 

при этом, я получаю " 'MyMethods' не определено."

+0

Помогает ли переключение «Handler» на «Fn»? – dougajmcdonald

ответ

0

Ext.NET forum post by Daniil

Использование X.GetCmp я был в состоянии для извлечения данных. Вероятно, это не самый лучший способ (возможно, способ без обратной передачи), но он по крайней мере завязал результаты, которые мне нужны.

3

DirectMethod должен быть публичным Также вы можете определить собственное пространство имен (вместо Ext.net.DirectMethods) [DirectMethod (Namespace = "MyDirectMethods")]

Смежные вопросы