行选择未激活或触发jqGrid事件

时间:2009-12-15 07:36:26

标签: jquery events jqgrid

我的jsp页面上运行了一个jqGrid,到目前为止我喜欢这个网格的所有功能。现在我尝试探索事件功能。我试图将一个函数附加到网格的onSelectRow事件,但是当我点击网格的任何一行时没有任何作用。你能告诉我为什么吗?

我正在使用jqGrid 3.6。我是否需要引用任何其他JavaScript库以使其有效?

我的网格显示加载了数据,但是当我点击任意一行时,没有任何反应。

以下是我的剧本:

<script src="javascript/jquery-1.3.2.js" type="text/javascript"></script>
<script src="javascript/ui.core.js" type="text/javascript" ></script>       
<script src="javascript/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="javascript/jquery.jqGrid.min.js" type="text/javascript"></script>    
<script src="javascript/ui.multiselect.js" type="text/javascript"></script>   
<script src="javascript/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script> 
<script type="text/javascript">
  jQuery(document).ready(function(){ 
    jQuery("#list").jqGrid({
      url:'admin.htm',
      datatype: 'xml',
      mtype: 'GET',
      colNames:['ID', 'data 1','data 2'],
      colModel :[ 
        {name:'ID', index:'ID', hidden:true}, 
        {name:'data 1', index:'data 1', width:90}, 
        {name:'data 2', index:'data 2', width:80, align:'right'}            
      ],
      rowNum:10,
      rowList:[10,20,30],
      sortname: 'ID',
      sortorder: 'desc',
      viewrecords: 'true',
      caption: 'Administration', width:"920",
      shrinkToFit:'false', }
  );

  jQuery("#list").jqGrid({
    onSelectRow: function(id){ alert('Selected row ID ' + id); }
  });
</script>

我的网格显示加载了数据,但是当我点击任意一行时,没有任何反应。

3 个答案:

答案 0 :(得分:7)

shrinkToFit之后需要删除额外的逗号。但在解决之前,为什么要在以后添加onSelectRow处理程序而不是作为网格定义的一部分?您可以在网格创建过程中添加它:

shrinkToFit:'false',
onSelectRow: function(id){
    alert('Selected row ID ' + id);
}
});

答案 1 :(得分:0)

您可能缺少一些jqGrid依赖项(它是模块化的,默认配置不包含其许多功能)。尝试在jqGrid的完整包中做同样的事情。另外,请务必检查JS错误控制台是否有破损迹象。

答案 2 :(得分:-1)

我发现这是onSelectRow的一个例子,发现除非我真的将它移到原始声明中,否则我遇到了问题