2015-12-25 49 views
1

我想在第一列的jqgrid中保留一個按鈕。jqgrid列內的硬編碼按鈕

$(document).ready(function() { 
      var grid = $("#list"), 
       mydata = [ 
       {col1:"need a button here",col2:"val1",col3:"val2"}, 
       {col1:"need a button here",col2:"val1",col3:"val2"}, 
       {col1:"need a button here",col2:"val1",col3:"val2"}, 
]; 
      grid.jqGrid({ 
       datatype: "local", 
       data: mydata, 
       colNames:['A','B','C'], 
       colModel:[ 
{name:'col1',index:'col1',key: true,width:100,sorttype:"text"}, 
{name:'col2',index:'col2',key: true,width:100,sorttype:"text"}, 
{name:'col3',index:'col3',key: true,width:100,sorttype:"text"}, 
], 
       search:true, 
       pager:'#pager', 
       jsonReader: {cell:""}, 
       rowNum: 10, 
       rowList: [5, 10, 20, 50], 
       sortname: 'id', 
       sortorder: 'asc', 
       viewrecords: true, 
       height: "38%", 
       caption: "Add Button" 
      }); 

我需要在col1的第一列中的按鈕。我試過在height屬性後添加一個按鈕,在grid完成函數中。

gridComplete: function(){ 
    var ids = $("#list").jqGrid('getDataIDs'); 
    for(var i=0;i < ids.length;i++){ 
     var cl = ids[i]; 
     be = "<input style='height:22px;' type='button' value='clickme'/>"; 
     $("#list").jqGrid('setRowData',ids[i],{act:be}); 
    } 

它不起作用。有人可以幫助這個嗎?

謝謝。

+0

抱歉,您發佈的代碼包含了許多錯誤。最重要的錯誤是在多列中使用'key:true'。您需要哪些輸入數據?輸入數據中是否有'unique'屬性可用作'id'?你打算怎麼處理網格?我的意思是:你是否需要使用數據編輯或不使用?點擊行中的按鈕應該做什麼?你在'onclick'處理程序中需要什麼信息?我看到很多你不接受的舊問題。是否應該在案件中回答你的問題? – Oleg

+0

我正在嘗試一個例子。爲了向你展示我的代碼,我只粘貼了行,因此重複鍵:true。不會使用ID。無需編輯。點擊按鈕應該顯示一個不同的網格彈出。 – sahana

+0

你應該**總是**哪個版本的jqGrid你使用(或可以使用)和從哪個分叉jqGrid([免費jqGrid](https://github.com/free-jqgrid/jqGrid),[Guriddo jqGrid JS](http://guriddo.net/?page_id=103334)或舊版本的<= 4.7版本的jqGrid)。您使用'{act:be}'作爲'setRowData'的參數,其中''act「'是將被修改的列的名稱。爲了使代碼工作,應該使用'{col1:be}'代替。調用'setRowData'的方式非常糟**。 value ='clickme'/>「' – Oleg

回答

1

您可以使用custom_formatter。您的第一列的定義是這樣的:

{name:'col1',index:'col1',key: true,width:100,sorttype:"text",formatter:buttonFunction}, 

那麼你應該定義格式的JavaScript函數,它會使您的按鈕:

function buttonFunction(cellvalue, options, rowObject) 
{ 
    // some business logic for each row 
    return "<input style='height:22px;' type='button' value='clickme'/>"; 
} 
+0

我應該在mydata中提供一些價值[col1:「我的意思是這裏」]?我應該在哪裏編寫按鈕功能?你能幫忙嗎? – sahana

+0

我不確定,我認爲你可以但不必。如果你放了一些價值,你應該可以在JavaScript函數中使用它作爲'cellvalue'變量。您可以在您定義網格的相同文件中編寫JavaScript函數。 – cakan

+0

感謝您的指導。它按預期工作。 – sahana