2013-04-09 59 views
0

我正在嘗試在其中一列的單元格中放置一個按鈕,並在單擊它時執行某些操作。無法在SlickGrid單元格中放置按鈕

例如我這些行添加到SlickGrid示例1(http://mleibman.github.io/SlickGrid/examples/example1-simple.html

首先給列陣列I添加:

​​

然後我添加:

 function reportFormatter(row, cell, value, columnDef, dataContext) { 
      return "<input type='button' value='show' id='reportBtn'/>"; 
     } 

     $('#reportBtn').click(function() { 
      alert("hello"); 
     }); 

的按鈕出現在單元格中但點擊事件未被調用! 我必須做錯事,但不能爲我的生活弄明白 任何人都可以幫忙嗎? 謝謝!

+0

你可以嘗試傳遞函數作爲一個onclick參數。我認爲這個問題可能是在執行順序,也許它正試圖尚未創建click事件分配給一個按鈕? – Hktrm 2013-04-09 03:24:54

回答

1

使用預編譯模板光滑網格示例。添加屬性,例如。 ImageTrial,並在數據結構中用動態輸入按鈕填充屬性。

<script type=" " id="testtemplate"> 
<div class="test"> 
    <b><%=ImageTrial%></b> 
    <b><%=ImageTrial2%></b> 
</div> 

dataForCell["ImageTrial"] = "<button type=\"button\" onclick=\"alert('a " + 1 + "')\">s</button>"; 

dataForCell["ImageTrial2"] = "<button type=\"button\" onclick=\"alert('b " + 2 + "')\">b</button>"; 

好運

1

slick.formatters.js

... 
"btnForm": buttonsFormatter // add Slick.Formatters 
.. 
    function buttonsFormatter(row, cell, value, columnDef, dataContext) { 
     return "<input type='button' value='"+value+"' id='btnForm' value2='"+row+"' value3='"+cell+"' onClick='fnBtnClick(this);'/>"; 
    } 

添加HTML腳本

function fnBtnClick(objBtn){ 
alert("row::[" + objBtn.value2 + "]\n\ncell::[" + objBtn.value3 + "]");  
} 
1

你應該使用網格事件沒有按鈕事件像下面,

  1. 將調用電網的onclick事件,
  2. 檢查,如果點擊的領域是你的按鈕一個
  3. 做你的行動

    grid.onClick.subscribe(function (e, args) { 
        //check if your button was clicked 
        if ($(e.target).hasClass("btn")) { 
         var item = dataView.getItem(args.row); 
         ///do your action 
        } 
    
    }); 
    
相關問題