`bind is not a function` podczas tworzenia formy z wykorzystaniem dhtmlXForm

0

Zrobiłem grida oraz formularz dhtmlx w technologii asp net mvc. Wszystko działa tzn. wyświetla mi dane oraz formularz. Jednak, postępując zgodnie z dokumentacją dhmlx, napisałem kod w js, który powinien powodować ładowanie do formularza wartości z zaznaczonego wiersza w gridzie.

Jednak w przeglądarce dostaje error: bind is not a function, i za licho nie wiem dlaczego?
Kod html:

    <div id="grid_here" style="width:600px; height:400px;">
    </div>
    <div id="myform_container" style="width:350px;height:160px;"></div>

Kod js:

var grid = new dhtmlXGridObject("grid_here");
        grid.setImagePath("/javascripts/codebase/imgs/");
        grid.setHeader("Name, Last name, Pesel, Phone,Address");
        grid.setInitWidths("100,160,*");
        grid.setSkin("dhx_skyblue");
        grid.setColumnIds("Name,LastName,Pesel,Phone,Address");
        grid.init();
        grid.load("/Default/Data?=" + grid.uid());
        formData = [
            {
                type: "fieldset", offsetTop: 0, label: "Edit Form", width: 253, list: [
                    {
                        type: "input", name: "Name", label: "Name", offsetTop: 13,
                        labelWidth: 60
                    },
                    {
                        type: "input", name: "LastName", label: "LastName", offsetTop: 7,
                        labelWidth: 60
                    },
                    {
                        type: "input", name: "Pesel", label: "Pesel", offsetTop: 7,
                        labelWidth: 60
                    },
                    {
                        type: "input", name: "Phone", label: "Phone", offsetTop: 7,
                        labelWidth: 60
                    },
                    {
                        type: "input", name: "Address", label: "Address", offsetTop: 7,
                        labelWidth: 60

                    },
                        { type: "button", name: "save", value: "Submit", offsetTop: 18 }
                ]
            }
        ];
        var myForm = new dhtmlXForm("myform_container", formData);
        
        myForm.bind(grid);

1

Pokaż rezultat console.log(myForm, myForm.bind);.

0

nie znam technologii, ale co mozesz zrobic (w sumie co ja bym zrobil)

  1. wpisal debugger przed linijka tak bym mogl zobaczyc co tam jest (ewentualnie wpisalbym console.log(myForm)
  2. zobacz czy ma tam bind i czy jest to funkcja czy zmienna.
  3. skoro nie jest funkcja to sprobuj

myForm.bind = grid;

jednak wydaje mi sie, ze jest zle tworzony obiekt w js tutaj

var myForm = new dhtmlXForm("myform_container", formData);

zobacz dokladnie co masz w debugerze (w sensie w obiekcie)

0

Rzeczywiście w console.log() wyświetliło mi info:

dhtmlXForm undefined.

No dobra, ale co z tym fantem zrobić teraz.

0

pokaz jak dolaczasz skrypt dhtmlx.js do swojego skryptu

0

@fasadin:

<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script src="/Scripts/dhtmlxcommon.js" type="text/javascript" charset="utf-8"></script>
    <script src="/Scripts/dhtmlxform.js"></script>
    <script src="/Scripts/dhtmlxgrid.js" type="text/javascript" charset="utf-8"></script>
    <script src="/Scripts/dhtmlxgridcell.js" type="text/javascript" charset="utf-8"></script>




    <link rel="stylesheet" href="/Scripts/skins/dhtmlxgrid_dhx_skyblue.css" type="text/css" media="screen" charset="utf-8">
    <link rel="stylesheet" href="/Scripts/skins/dhtmlxform_dhx_skyblue.css" type="text/css" media="screen" charset="utf-8">
    <link rel="stylesheet" href="/Scripts/dhtmlxgrid.css" type="text/css" media="screen" charset="utf-8">
</head>

2

a jak zrobisz tak? (w sensie zaincludujesz z cdn zamiast z loklanego swojego dysku)

<link rel="stylesheet" href="http://cdn.dhtmlx.com/edge/dhtmlx.css" 
    type="text/css"> 
<script src="http://cdn.dhtmlx.com/edge/dhtmlx.js" 
    type="text/javascript"></script>
0

@fasadin:
Dziękować! Działa!

1 użytkowników online, w tym zalogowanych: 0, gości: 1