рд╢реБрд░реБрдЖрдд рдХреА рдЖрдБрдЦреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реЗрдмрд┐рдХреНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рднрд╛рдЧ 4. рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред CRUD



рдореИрдВ рд╢реБрд░реБрдЖрддреА рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВред рдЕрдм рдореИрдВ рдорд┐рдиреНрд╕реНрдХ рдЖрдИрдЯреА рдХрдВрдкрдиреА рдореЗрдВ рдЕрдзреНрдпрдпрди рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд▓реЗ рд░рд╣рд╛ рд╣реВрдВред рд╡реЗрдм-рдпреВрдЖрдИ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦрдирд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдмрд┐рдХреНрд╕ рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЕрдкрдиреЗ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рджрд┐рд▓рдЪрд╕реНрдк рдпреВрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЪрд╛рд░ рдЪрд╛рдВрдж рд▓рдЧрд╛рдирд╛


рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, CRUD рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ - рдЪрд╛рд░ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпред Webix рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ CRUD рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдЙрдкрдХрд░рдг рд╣реИрдВред рдирдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд╛рд░ рдореБрдЭреЗ рдкрд┐рдЫрд▓реЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛: рдПрдХ рдЖрд╡реЗрджрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ , рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рдФрд░ рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ редрдпрд╣ рд▓реЗрдЦ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛:

  • рдПрдХ рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдкрд╛рджрди рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛;
  • рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрдХ рдХреА рд╕реНрдерд╛рдкрдирд╛ ;
  • рд╕реВрдЪреА рдФрд░ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдирд╛;
  • рдЖрдЗрдЯрдо рд╣рдЯрд╛рдПрдВ;

рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЖрдк рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕реВрдЪреА , рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд , рдЯреЗрдмрд▓ рд╡рд┐рдЬреЗрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рд╕реВрддреНрд░ рд▓рд┐рдВрдХ рдкрд░ рд╣реИрдВ ред

рдкрд░рд┐рдгрд╛рдореА рдбреЗрдореЛ рдЖрд╡реЗрджрди рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдЪрд░рдг 1. рдкреНрд░рдкрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрдкрд╛рджрди


рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рдореИрдВ "рдбреИрд╢рдмреЛрд░реНрдб" рдЯреИрдм рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдлреЙрд░реНрдо рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рддрд╛рд▓рд┐рдХрд╛ рдХреЛрдб рддрд╛рд▓рд┐рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ, рдкреНрд░рдкрддреНрд░ рдХреЛрдб form.js. рдореЗрдВ рд╣реИред

" рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ " рд▓реЗрдЦ рдореЗрдВ , рдРрдб () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЬреЛрдбрд╝реА рдЧрдИрдВ , рдЬреЛ рдлреЙрд░реНрдо рд╕рддреНрдпрд╛рдкрди рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рдереАрдВред рдЕрдм рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд┐рдЬреЗрдЯ рдЯреЗрдмрд▓ рдореИрдВ рдРрдб рдШрдЯрдирд╛ onAfterSelect ред
рдЬрдм рдпрд╣ рдШрдЯрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдореБрдЭреЗ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдкреНрд░рдкрддреНрд░ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

const table = {
    view:"datatable", 
    id:"film_list",
    scroll:"y",
    select:true,
    url:"data/data.js",
    hover:"myhover",
    columns:[
        { id:"rank", header:"", width:50, css:"rank"},
        { id:"title", header:"Film title", fillspace:true},
        { id:"year",  header:"Released", width:100},
        { id:"votes", header:"Votes", width:100},
        { id:"rating", header:"Rating", width:100}
    ],
    on:{
        onAfterSelect(id){
            let values = $$("film_list").getItem(id);
            $$("film_form").setValues(values)
        }
    }
}

рдЙрдкрд░реНрдпреБрдХреНрдд рдХреЛрдб рдореЗрдВ setValues тАЛтАЛ() рд╡рд┐рдзрд┐ , рдкреНрд░рд╛рдкреНрдд рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рдкрддреНрд░ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдореИрдВ рдХреЛрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ:



рдЬреИрд╕реЗ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдбреЗрдЯрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлреЙрд░реНрдо рдореЗрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

рдЕрдм рдореИрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВ: рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛; рдпрджрд┐ рдбреЗрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВред

рдореИрдВ saveItem рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдирдП рддрд░реАрдХреЗ рдЬреЛрдбрд╝реВрдВрдЧрд╛ :

let saveItem = () => {
    let form = $$( "film_form" );  
    let list = $$( "film_list" );  
    let item_data = $$("film_form").getValues();    
    if( form.isDirty() && form.validate() ){
        if( item_data.id ) 
            list.updateItem(item_data.id, item_data);
        else 
            list.add( item_data );
    }
}

рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЕрдм рдирд┐рдореНрди рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╣реИ:
  • рд╢реБрд░реБрдЖрдд рдореЗрдВ, рджреЛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреНрдпрд╛ рдлреЙрд░реНрдо рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдЧреБрдЬрд░ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдлреЙрд░реНрдо рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдкреНрд░рдкрддреНрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди isDirty () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ ;
  • рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рд╛рд▓рдд "item_data.id" рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЖрдИрдбреА рд╕рд╣рд┐рдд рдЙрд╕рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдлрд╝реЙрд░реНрдо рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдлрд╝реЙрд░реНрдо рдореЗрдВ рдХреЛрдИ рдкрд╛рда рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдкреНрд░рдкрддреНрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рднреА рд╕рдмрдорд┐рдЯ рдХрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ;
  • рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рд╕рдореЗрдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╛ рддреЛ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдРрдб () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ , рдпрд╛ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡ рдХреЛ рдирдП рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╕рдВрдкрд╛рджрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдбреЗрдЯ рдЗрдЯ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╡рд┐рдзрд┐ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддреА рд╣реИ: рдЪрдпрдирд┐рдд рддрддреНрд╡ рдХреА рдЖрдИрдбреА рдФрд░ рдлреЙрд░реНрдо рд╕реЗ рд▓реА рдЧрдИ рдирдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯред рдЬрдм рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рд╣реЛрддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо:



рдЪрд░рдг 2. рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрдкрд╛рджрдХ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛


рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдкреГрд╖реНрда рдкрд░ рдлрд╝реЙрд░реНрдо рдХреА рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реАрдзреЗ рддрддреНрд╡ рдореЗрдВ рд╕рдВрдкрд╛рджрди рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдФрд░ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реВрдЪреА рдореЗрдВред

рдореИрдВ " рдЙрддреНрдкрд╛рдж " рдЯреИрдм рдореЗрдВ рдПрдХ рдЯреНрд░реА рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ ред рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб products_module.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИред Treetable

рд╡рд┐рдЬреЗрдЯ рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИред рд╕рдВрдкрд╛рджрди рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рддрд╛рд▓рд┐рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди editable:trueрдореЗрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдВрдн рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВред рд╡рдХреНрддрд╛рдУрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ editor:тАЭtextтАЭред "рдЯреЗрдХреНрд╕реНрдЯ" рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрдкрд╛рджрдХ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рд╕рдВрдкрд╛рджрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВрдкреНрд░рд▓реЗрдЦрди ред

const products = {
    editable:true,
    view:"treetable",
    scrollX:false,
    columns:[
        { id:"id", header:"", width:50 },
        { id:"title", header:"Title", fillspace:true, 
        template:"{common.treetable()} #title#", editor:"text" },
        { id:"price", header:"Price", width:200, editor:"text" }
    ],
    select:"row",
    url:"data/products.js",
    rules:{
        "price":webix.rules.isNotEmpty,
        "title":webix.rules.isNotEmpty
    }
}

рдХреЛрдб рдореЗрдВ, рдореИрдВрдиреЗ рд╢реАрд░реНрд╖рдХ рдФрд░ рдореВрд▓реНрдп рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ред рдХрд┐рд╕реА рднреА рд╕реЗрд▓ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ, рдЙрдирдореЗрдВ рдПрдХ рд╕рдВрдкрд╛рджрдХ рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ - рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб:



рдЕрдм рдореИрдВ " рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ " рдЯреИрдм рдкрд░ рдЬрд╛рдКрдВрдЧрд╛ , рдФрд░ рдореИрдВ рд╕реВрдЪреА рд╡рд┐рдЬреЗрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВрдВрдЧрд╛ ред рд╡рд┐рдЬреЗрдЯ рдХреЛрдб user_module.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИред

рдЯреНрд░реАрдЯреЗрдмрд▓ рдФрд░ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдПрдбрд┐рдЯрд┐рдВрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡рд┐рд╢реЗрд╖ рдПрдбрд┐рдЯрдмрд┐рд▓рд┐рдЯреА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдореИрдВ рд╕реВрдЪреА рд╡рд┐рдЬреЗрдЯ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LIst рд╡рд┐рдЬреЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВ protoUI рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдмрдирд╛рдКрдВрдЧрд╛ ред

рдореИрдВ рдирд╛рдо рд▓рд┐рдЦрддрд╛ рд╣реВрдВ - рдирд╛рдо рд╕рдВрдкрддреНрддрд┐ - рднрд╡рд┐рд╖реНрдп рдХреЗ рд╡рд┐рдЬреЗрдЯ рдХрд╛ - рдФрд░ рдмреЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ред

рд╕реВрдЪреА рд╡рд┐рдЬреЗрдЯ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк:

webix.protoUI({
    name:"editlist"
}, webix.EditAbility, webix.ui.list);

рдкреНрд░реЛрдЯреЛрдпреВрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рддреИрдпрд╛рд░ рдШрдЯрдХ рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕реЗ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЕрдиреНрдп рд╕рднреА - рд╕реЗрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ view:"editlist"ред

view: "editlist",
editable:true,
editor:"text",
editValue:"name",
id:"user_list",
select:true,
url:"data/users.js",
template:"#name# from #country# <span class='webix_icon wxi-close'></span> "
}

рдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдХрдИ рдлрд╝реАрд▓реНрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдирд╛рдо рдФрд░ рджреЗрд╢ рдХреЛ рддреБрд░рдВрдд рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢реАрдЯ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ editorValue:тАЭnameтАЭ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдо:



рдЪрд░рдг 3. рд╕реВрдЪреА рдФрд░ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдирд╛


рд▓реЗрдЦ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╕реВрдЪреА рдФрд░ рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдЬреЗрдЯ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреЛрдб user_module.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ " рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ " рдЯреИрдм рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

рдЪрд╛рд░реНрдЯ рдФрд░ рд╕реВрдЪреА рд╡рд┐рдЬреЗрдЯ рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдПрдХ JSON рд╕рд░рдгреАред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдореИрдВ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╡реЗ рджреЛрдиреЛрдВ рдШрдЯрдХреЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ, рдореИрдВ "рдирдпрд╛ рд╡реНрдпрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ" рдмрдЯрди рдЦреАрдВрдЪреВрдВрдЧрд╛ред

{
    cols:[
        { 
        view:"button", 
        id:"btn_add_person", 
        value:"Add new person", 
        width:150, css:"webix_primary", 
        click:addPerson
        },
       {}
    ]
}

рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдРрдбрдкрд░реНрд╕рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЪрд╛рд░реНрдЯ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЖрдпреБ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рд╕рд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред

рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:

let addPerson = () => {
    let obj = {
        name:"Some name",
        age:Math.floor(Math.random() * 80) + 10, 
        country:"Some country"
    }
    $$("user_list").add(obj);
    $$("chart").add(obj);
};

рдкрд░рд┐рдгрд╛рдо:



рдЪрд░рдг 4. рдЖрдЗрдЯрдо рд╣рдЯрд╛рдирд╛


рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреИрдм рдФрд░ рдбреИрд╢рдмреЛрд░реНрдб рдЯреИрдм рдХреЗ рд░реВрдк рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪреА рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред

рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдореИрдВ рдПрдХ рдирдпрд╛ рдХреЙрд▓рдо рдмрдирд╛рдКрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде html рдЯреИрдЧ рд▓рдЧрд╛рдКрдВрдЧрд╛ред

рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ onClick рдЯреЗрдмрд▓ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ред рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рд╕реАрдПрд╕рдПрд╕ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрддреНрд╡реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИ - рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ "delete_icon"ред

рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрдирдХреА delete_icon рдХреНрд▓рд╛рд╕ рд▓реЗрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЗ рд░реВрдк рдореЗрдВ рдСрдирдХреНрд▓рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рдЗрд╕ рдХреБрдВрдЬреА рдХрд╛ рдорд╛рди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдЧрд╛ - рд╣рдорд╛рд░рд╛ рд╣реИрдВрдбрд▓рд░ред рддрд░реНрдХреЛрдВ рдХреЗ рдмреАрдЪ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЖрдИрдбреА рдЖрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднреА рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ ред

рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рдЬреЗрдЯ рдХреЛрдб:

const table = {
    view:"datatable", 
    id:"film_list",
    scroll:"y",
    select:true,
    url:"data/data.js",
    hover:"myhover",
    columns:[
        { id:"rank", header:"", width:50, css:"rank"},
        { id:"title", header:"Film title", fillspace:true},
        { id:"year",  header:"Released", width:100},
        { id:"votes", header:"Votes", width:100},
        { id:"rating", header:"Rating", width:100},
        { header:"", template:"<span class='webix_icon wxi-close delete_icon'></span>", 
        width:35}
    ],
    onClick:{
        delete_icon(e, id){
        this.remove(id);
        return false;
        }
    },
    on:{
        onAfterSelect(id){
            let values = $$("film_list").getItem(id);
            $$("film_form").setValues(values)
        }
    }
}

рд╕реВрдЪреА рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдкрдВрдХреНрддрд┐ рд╡рд┐рд▓реЛрдкрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ:

{
    view: "editlist",
    editable:true,
    editor:"text",
    editValue:"name",
    id:"user_list",
    select:true,
    url:"data/users.js",
    template:`#name# from #country# 
    <span class='webix_icon wxi-close delete_icon'></span> `,
    onClick:{
        delete_icon(e, id){
            this.remove(id);
            return false;
        }
    }
},

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреИрдм рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо: рдЖрдк рдпрд╣рд╛рдВ



рд╕рдорд╛рдкреНрдд рдЖрд╡реЗрджрди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдирд┐рд╖реНрдХрд░реНрд╖


рд╡реЗрдмрд┐рдХреНрд╕ рдХреА рдЬреАрдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдЖрд░рдпреВрдбреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдбреЗрдЯрд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрдкрд╛рджрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдПрдкреАрдЖрдИ рдЬреЛ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд░реВрдк рдореЗрдВред рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВ, рдФрд░ рдлреЙрд░реНрдо рдореЗрдВ рдЖрдк CRUD рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рддрд░реАрдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

Source: https://habr.com/ru/post/undefined/


All Articles