0

我想在单击单元格时打开一个对话框。我正在使用 dgrid/editor。

      editor({field: "column1",label: "col1",editor: "text",editOn: "click"})

使用上述代码时出现文本框。我想要一个对话框。请告诉我如何获取对话框。我正在使用带有 JSONReststore 的 OndemandGrid 来显示网格。

4

3 回答 3

1

您不需要使用编辑器来触发对话框,在单元格上使用点击事件就可以了:

   var grid = new declare([OnDemandGrid,Keyboard, Selection])({ 
        store: Observable(new Memory({data: []}))
    }, yourGridConatiner);

    grid.on(".dgrid-content .dgrid-cell:click", function (evt) {
        var cell = grid.cell(evt);
        var data = cell.row.data;

         /* your dialog creation at here, for example like below */
        var dlg = new Dialog({
            title: "Dialog",
            className:"dialogclass",
            content: dlgDiv  //you need create this div using dojo.create or put-selector
        });

        dlg.show();


    });

如果您想在鼠标悬停在该单元格上时显示指针,您可以在 renderCell 方法中使用“cursor:pointer”设置它的样式

于 2013-09-20T17:41:58.840 回答
0

维基

editor- 此列中编辑器使用的组件类型;指定要创建的标准 HTML 输入类型的字符串,或要实例化的 Dijit 小部件构造函数。

您可以提供(to editor)一个按钮,单击时会弹出一个对话框,但这可能意味着单击两次来编辑单元格:一次聚焦或进入编辑模式,或者以其他方式使按钮出现,一次实际单击按钮。

您也可以不打扰编辑器插件并将click事件处理程序附加到单元格并从那里弹出一个对话框。如果您走这条路,则必须手动将更改保存回您的商店。

于 2013-09-20T15:21:26.813 回答
-1

如果我理解正确 - 你可以尝试这样的事情:

function cellFormatter1(value) {
    //output html-code to open your popup - ie. using value (of cell) 

}

......

{field: "column1",label: "col1", formatter: cellFormatter1 }
于 2013-09-23T10:49:03.960 回答