Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events Datagrid事件在标题栏内不工作_Events_Datagrid_Dojo - Fatal编程技术网

Events Datagrid事件在标题栏内不工作

Events Datagrid事件在标题栏内不工作,events,datagrid,dojo,Events,Datagrid,Dojo,我是Dojo新手,正在尝试创建可以在单击时展开的Datagrid。所以,我决定将datagrid放在一个标题栏中,这样datagrid可以显示在扩展的标题栏上 titlepane很好用,我可以在里面设置数据网格。到目前为止一切都很好。唯一的问题是,我无法在datagrid中获取单击事件。(我无法进行行选择、排序等) 我正在使用Dojo1.8.3,下面是我的代码 功能(任务列表模型){ var tasks=taskListModel.getData() 网格创建: var createTaskDa

我是Dojo新手,正在尝试创建可以在单击时展开的Datagrid。所以,我决定将datagrid放在一个标题栏中,这样datagrid可以显示在扩展的标题栏上

titlepane很好用,我可以在里面设置数据网格。到目前为止一切都很好。唯一的问题是,我无法在datagrid中获取单击事件。(我无法进行行选择、排序等)

我正在使用Dojo1.8.3,下面是我的代码

功能(任务列表模型){ var tasks=taskListModel.getData()

网格创建:

var createTaskDataGrid = function(tasks){
/设置数据存储/ 风险值数据={ 标识符:“id”, 项目:[] })

//将数据推送到项目中
对于(变量i=0;i
任何帮助都会很好


谢谢,

请尝试以下代码,以便在网格启动后将onClick事件连接到数据网格

 dojo.connect(grid,'onRowClick',function(event) {
        var idx = event.rowIndex,
        rowData = grid.getItem(idx);
        //console.log("row data is = " + rowData.task_name + " " + rowData.taskid);
        mainController.taskSelected(rowData.taskid, rowData.task_name);
    });

同样对于排序,请使用
grid.canSort=true

您好,谢谢您的回复。我已经尝试过这个解决方案。但是我仍然没有得到点击事件。嘿..你能在函数中放一个警报并检查它是否进入了方法…你也得到了任何javascript错误吗?嗨,我试过。。但是没有帮助。。该函数根本没有被调用。有一个问题的更新:如果我尝试单击数据网格中某一行的最左角,则单击事件正在工作。还在努力找出原因吗
// push the data into items
for(var i = 0; i < tasks.length; i++){
data.items.push(lang.mixin({ id: i+1 }, tasks[i]));
}
var store = new ItemFileWriteStore({data: data});

/*set up layout*/
var layout = [[
  {'name': 'S.No', 'field': 'id', 'width': '10%'},
  {'name': 'TaskName', 'field': 'task_name', 'width': '20%'},
  {'name': 'Assignee', 'field': 'assignee', 'width': '20%'},
  {'name': 'Module', 'field': 'module_name', 'width': '20%'},
  {'name': 'DueDate', 'field': 'taskid', 'width': '15%'},
  {'name': 'Status', 'field': 'status', 'width': '15%'}
]];

/*create a new grid*/
var grid = new DataGrid({
id: 'grid',
store: store,
structure: layout,
rowSelector: '20px',
autoHeight: true});

/*append the new grid to the div*/
grid.placeAt("tasklistscroller");

/*Call startup() to render the grid*/
grid.startup();

grid.on("RowClick", function(evt){
    var idx = evt.rowIndex,
    rowData = grid.getItem(idx);
    //console.log("row data is = " + rowData.task_name + " " + rowData.taskid);
    mainController.taskSelected(rowData.taskid, rowData.task_name);
}, true);


if(taskListTitlePane !== null){
    console.log("setting grid inside title pane");
    taskListTitlePane.setContent(grid.domNode);
    //taskListTitlePane.containerNode.appendChild(grid.domNode); 
}}
 dojo.connect(grid,'onRowClick',function(event) {
        var idx = event.rowIndex,
        rowData = grid.getItem(idx);
        //console.log("row data is = " + rowData.task_name + " " + rowData.taskid);
        mainController.taskSelected(rowData.taskid, rowData.task_name);
    });