флажок as3 в сетке данных - PullRequest
0 голосов
/ 06 июля 2011

Я новичок во Flash и AS3.У меня есть DataGrid, подобный этому

  col1        col2     col3    col4
[checkbox]   value    value    value
[checkbox]   value    value    value
[checkbox]   value    value    value
[checkbox]   value    value    value

Datagrid динамически заполняется из mysql с использованием services.100 записей на страницу в сетке данных.если я выберу несколько флажков и перейду на следующую страницу и выберу несколько других, кроме возврата на страницу 1. должны быть отмечены флажки, которые я выбрал ранее.

У меня есть значение флажков на странице 1 в сеансе php, и я могу получить доступ к этим значениям во флэш-памяти, но я не знаю, как установить checboxes флажок = true;потому что на флажке не происходит событие CHANGE.

Я использую приведенный ниже класс.http://www.actionscript.org/forums/showthread.php3?t=234416

Пожалуйста, помогите мне кому-нибудь

@ Джош Мохан

:( Не повезло. Можете ли вы, пожалуйста, проверьте приведенный ниже код. И поправьте меня, как позвонить

CheckCellClass.onCheckChange (new Event (Event.CHANGE));

функция showSearchCriteria (returnObj: Object) {// RETURN - это значение из базы данных var varName: String; for (varName в returnObj){

    /* NOTE : In this loop i want to set checkbox boxes to be checked. i mean selected = true;*/

    var plid                        = int   (returnObj[varName]   ["plid"]); //THIS IS GOING TO ASSIGN TO CHECKBOX
    var varState            = String(returnObj[varName]["state"]);
    var varCity             = String(returnObj[varName]["city"]);
    var varacgmeid          = String(returnObj[varName]["acgmeid"]);
    var varProgramname      = String(returnObj[varName]["programname"]);
    var varUrl              = String(returnObj[varName]["url"]);
    var varNoofseats        = int   (returnObj[varName]["noofseats"]);
    var varDeadline         = String(returnObj[varName]["deadline"]);
    var varYearofpassing    = int   (returnObj[varName]["passYear"]);
    var varScore            = int   (returnObj[varName]["stepone2digit"]);
    var varSteponeattempt   = int   (returnObj[varName]["steponeattempt"]);
    var varObservership     = int   (returnObj[varName]["observership"]);
    var varExternship       = int   (returnObj[varName]["externship"]);
    var varj1h1bf1          = String(returnObj[varName]["visa"]);
    var varProgramtype      = String(returnObj[varName]["programtype"]);
    var varComment          = String(returnObj[varName]["comment"]);
    var varContact          = String(returnObj[varName]["contact"]);

    //plid.onCheckChange (new Event(Event.CHANGE));
    arrDP.push({
      //Column            Value
       Select           : plid, 
       State            : varState,
       City             : varCity,
       ACGMEID          : varacgmeid,
       ProgramName      : varProgramname,
       NoofnSeats       : varNoofseats,
       Deadline         : varDeadline,
       YearFromPassing  : varYearofpassing,
       Scores           : varScore,
       Attempts         : varSteponeattempt,
       UsExperience     : varObservership,
       NoofMonths       : varExternship,
       VisaSponsored    : varj1h1bf1,
       Type             : varProgramtype,
       More             : "Show"
    }); //push end here..
} //for end here..

var dp:DataProvider              = new DataProvider(arrDP);

var select:DataGridColumn        = dg.addColumn("Select");
var state :DataGridColumn        = dg.addColumn("State");
var city  :DataGridColumn        = dg.addColumn("City");
var acgmeid :DataGridColumn      = dg.addColumn("ACGMEID");
var programname :DataGridColumn  = dg.addColumn("ProgramName");
var noofseats:DataGridColumn     = dg.addColumn("NoofnSeats");
var deadline:DataGridColumn      = dg.addColumn("Deadline");
var yearofpassing:DataGridColumn = dg.addColumn("YearFromPassing");
var scores:DataGridColumn        = dg.addColumn("Scores");
var attempts:DataGridColumn      = dg.addColumn("Attempts");
var usexperience:DataGridColumn  = dg.addColumn("UsExperience");
var noofmonths:DataGridColumn    = dg.addColumn("NoofMonths");
var visasponsored:DataGridColumn = dg.addColumn("VisaSponsored");
var type:DataGridColumn          = dg.addColumn("Type");
var more:DataGridColumn          = dg.addColumn("More");

select.cellRenderer              = ButtonRenderer; //CELL RENDER FOR CHECKBOX       

dg.dataProvider         = dp;

} ​​

1 Ответ

0 голосов
/ 07 июля 2011

Используемый вами класс переопределил установщик класса Checkbox для свойства selected, что сделало невозможным установить или снять флажок с помощью свойства selected.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/controls/LabelButton.html#selected

КОД:

override public function set selected(value:Boolean):void { 
}

РЕШЕНИЕ : Без изменения вашего класса, чтобы позволить вашему установщику изменить свойство selected суперкласса, есть два варианта:

A) Вызовите обработчик события onCheckChange вручную и передайте ему нулевое событие или фиктивное событие:

CheckCellClass.onCheckChange (new Event(Event.CHANGE));

B) Отправьте событие Event.CHANGE в поток событий, чтобы вызвать обработчик события:

CheckCellClass.dispatchEvent (new Event (Event.CHANGE));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...