2011-08-23 102 views
1

我想阻止onClick选择jqGrid的元素。避免选择onClick

怎么可能?

这里是你

转到一个例子,这个链接http://www.ok-soft-gmbh.com/jqGrid/UnobtrusiveLinksNew.htm

在这个页面中,如果我点击舒马赫波多尔斯基相关行成了黄颜色选择。另一方面,如果我点击Formula 1足球相关的行不选择。我想在jqGrid中的元素上获得这种行为。

UPDATE: 这里是我的代码

$(document).ready(function() 
    { 

$(function() 
    { 
     $("#list").jqGrid 
     ({ 
      url:'example.php', 
      datatype: 'xml', 
      mtype: 'GET', 
      colNames:['RABR member in Circle','Date Sent','Status','Action'], 
      colModel : 
      [ 

       {name:'tax', index:'tax', width:85, align:'left',sortable:false,formatter:format_row}, 
       {name:'invdate', index:'invdate', width:60, align:'center',sortable:false,formatter:format_date}, 
       {name:'amount', index:'amount', width:35, align:'center', sortable:false,formatter:format_status}, 
       {name:'amount', index:'amount', width:55, align:'left',title:false, sortable:false,formatter:format_rate_me,beforeSelectRow: function(rowid, e) { return false; }, 
}, 
      ], 
      pager: '#pager', 
      rowNum:10, 
      rowList:[10,20,30], 
      viewrecords: true, 
      multiselect: true, 
      altclass:'myAltRowClass', 
      altRows:true, 
      width:624, 
      height:'auto' }).navGrid('#pager',{edit:false,add:false,del:false}); 
     }) ;  


     function format_row(cellValue, options, rowObject) 
      { 
       var split_result = cellValue.split("+"); 
       var show_result= "<img src='images1/" + split_result[0] + "'/><b id='pro_name'>"+ split_result[1] + "</b></br><b id='e_add'>" + split_result[2]+"</b>"; 
       return show_result; 
      } 


     function format_date(cellValue, options, rowObject) 
      { 
       var date = "<div class='date'>" + cellValue + "</div>"; 
       return date; 
      } 


     function format_status(cellValue, options, rowObject) 
      { 
       var status_image = "<img src='images/" + cellValue + ".jpg' />"; 
       return status_image; 
      } 


     function format_rate_me(cellValue, options, rowObject) 
      { 
       var optoins = "<div class='rate_me_text'>" + cellValue + "<div class='star_div'></div><div class='down_arrow'></div> <div class='options'><ul><li class='add_me'><a href='#'>Add as a friend</a></li><li class='view_circle'><a href='#'>View Circle Members(23)</a></li><li class='send_msg'><a href='#'>Send messages</a></li><li class='add_to_watch'><a href='#'>Add to watch list</a></li><li class='gifting'><a href='#'>Give a gift</a></li><li class='remove'><a href='#'>Remove from Circle</a></li><li class='block'><a href='#'>Block</a></li><li class='report'><a href='#'>Report abuse</a></li></ul></div></div>";    
       return optoins; 
      } 

    }); 

我想获得避免在.down_arrow类点击选择。

感谢答复

UPDATE

“@Oleg”

最后我做到了。

这里是代码

altclass:'myAltRowClass', 
     altRows:true, 
     beforeSelectRow: 
     function(rowid, e) 
     { 
      var iCol = $.jgrid.getCellIndex(e.target); 

      if (iCol >=4) 
      { 
       return false; 
      } 
      else 
      { 
       return true; 
      } 
     }, 
     width:624, 

感谢您的回复

回答

2

为了防止该行的选择,你可以使用beforeSelectRow事件处理程序。如果事件处理程序返回false,则行选择将被阻止。您可以检查e.target这将是用户点击的<td>元素或其子元素(如<td>中的<a>元素)。

+0

如何使用beforeSelectRow? 我可以在哪里使用beforeSelectRow? 在colModel或colModel的外面使用? 我在我的coloumn中使用了customformatter。 我在wiki的事件页面中获得了以下代码: 'var lastSel; 。 的jQuery( “#gridid”)的jqGrid({ ... onSelectRow:功能(ID){ 如果(ID && ID == lastSel){jQuery的 ( '#gridid')restoreRow(lastSel)! lastSel = ID; } 的jQuery( '#gridid')editRow(ID,真实);} , ... });' 但它不是我清楚。你能不能发些关于这个的例子? – Foysal

+0

@Foysal:你可以在同一层上使用'beforeSelectRow',就像你使用'onSelectRow'一样。另一个演示请看[演示](http://www.ok-soft-gmbh.com/jqGrid/CellClick1.htm)并点击网格内的图标。如果你仍然有一些问题,你可以在你的问题中包含一些*你的*代码(而不是在注释中),我可以在代码中插入'beforeSelectRow'句柄。 – Oleg

+0

'奥列格'你在吗? – Foysal