AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.03.2012, 23:59   #1  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Как сделать чтобы aspnetForm.submit не вызывал переход на новую форму
Доброго времени суток!
помогите пж-ста.

Создал web форму в группе создан UserDefined элемент, перекрыт метод layout

X++:
    boolean         ret;
    str             temp;
    DictEnum        dictEnum;
    int             i;
    str     controlName;
    void createLink()
    {
        boolean         b;
        ;
        temp = temp + strfmt('<select size=1 id="%1" name="%1" onchange="fldsubmit_%1()">\n',controlName);
        dictEnum = new DictEnum(enumNum(WorkFlowAllMy));
        b = false;
        for (i=0;i<=dictEnum.values();i++)
        {
            if (dictEnum.index2Label(i))
            {
                if (workFlowAllMy == dictEnum.index2Value(i))
                {
                      temp = temp + strfmt("<option selected value=%1>%2</option>\n",dictEnum.index2Value(i),dictEnum.index2Label(i));

                }
                else
                     temp = temp + strfmt("<option value=%1>%2</option>\n",dictEnum.index2Value(i),dictEnum.index2Label(i));
            }
        }
        temp = temp + strfmt("<option value=%1>%2</option>\n",10,s12);
        temp = temp + strfmt("</select>\n");
    }
    ;
    ret = super();
    controlName = webSession().createControlName(element,this);
    temp = '<SCRIPT language="javascript" type="text/javascript">\n';
    temp += 'function fldsubmit_'+controlName+'()\n';
    temp += '{\n';
    temp += 'document.aspnetForm' +'.'+ controlName+'.value = 2;\n';
    temp += strfmt("%1_%2_wfsubmit(\'SUBMIT\');\n",element.name(),webSession().getClientId());
    temp += '}\n';

    temp += '</SCRIPT>\n';
    createLink();
    webSession().writeTxt(temp);
    return ret;
сообствена у это userDefined элемента источником данных стоит edit метод на форме
X++:
edit WorkFlowAllMy editWorkFlowAllMy(boolean _set,WorkFlowAllMy _value)
{
    ;
    if (_set)
    {
        workFlowAllMy = _value;
    }
    return workFlowAllMy;
}
вроде бы все хорошо, но при выборе другого значения в этом combobox переход осуществляется на какую то новую страницу.
хочу чтобы перехода не было а страница просто обновилась по заданным значениям в combobox
saveViewState и loadViewState перекрыты








DAX 4.0 sp 2 MSSQL 2005
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 27.03.2012, 12:27   #2  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Цитата:
Сообщение от Murlin Посмотреть сообщение
Доброго времени суток!
помогите пж-ста.
Все решилось просто. Во первых метод layout генерация кода в нем неверна
в должно быть так
X++:
public boolean layout()
{
    boolean         ret;
    str             temp;
    DictEnum        dictEnum;
    int             i;
    str     controlName;
    void createLink()
    {
        boolean         b;
        ;
        temp = temp + strfmt('<select size=1 id="%1" name="%1" onchange="fldsubmit_%1()">\n',controlName);
        dictEnum = new DictEnum(enumNum(WorkFlowAllMy));
        b = false;
        for (i=0;i<=dictEnum.values();i++)
        {
            if (dictEnum.index2Label(i))
            {
                if (workFlowAllMy == dictEnum.index2Value(i))
                {
                      temp = temp + strfmt("<option selected value=%1>%2</option>\n",dictEnum.index2Value(i),dictEnum.index2Label(i));
                }
                else
                     temp = temp + strfmt("<option value=%1>%2</option>\n",dictEnum.index2Value(i),dictEnum.index2Label(i));
            }
        }
        temp = temp + strfmt("</select>\n");
    }
    ;
    ret = super();
    controlName = webSession().createControlName(element,this);
    temp = '<SCRIPT language="javascript" type="text/javascript">\n';
    temp += 'function fldsubmit_'+controlName+'()\n';
    temp += '{\n';
    temp += strfmt("var val = document.getElementById('%1').value;\n",controlName);
    temp += strfmt("document.aspnetForm.%1.value = val;\n",controlName);
    temp += strfmt("%1_%2_wfsubmit('SUBMIT',%3,1);\n",element.name(),webSession().getClientId(),this.id());
    temp += '}\n';
    temp += '</SCRIPT>\n';
    createLink();
    webSession().writeTxt(temp);
    return ret;
т.е. основная ошибка тут
X++:
temp += strfmt("%1_%2_wfsubmit('SUBMIT',%3,1);\n",element.name(),webSession
т.е. сама процедура wfsubmit кроме комманды submit должна получать Id контрола формы
кроме того на userDefined контроле пришлось перекрыть метод setControl
X++:
public void setControl()
{
    str         s;
    int         i;
    ;
    super();
    s = WebSession().createControlName(element,this);
    workFlowAllMy = str2int(WebSession().getParm(s));
}
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Теги
aspnetform, ep, web, обновление страницы

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Переход (upgrade) Аксапта с версии 3 на Ax 2009 Evgeniy2020 DAX: Администрирование 4 15.07.2010 09:10
LedgerJournalTable как лучше сделать новую форму kitty DAX: Программирование 2 20.02.2008 12:36
Как сделать форму модальной? Ashir DAX: Программирование 4 22.12.2005 16:27
Как сделать свою Web-lookup форму? brm DAX: Программирование 8 23.03.2005 13:03

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:07.