SlickGrid show dialog by button

by yudhir bhattarai

HTML

<script src="http://mleibman.github.io/SlickGrid/lib/jquery.event.drag-2.2.js"></script>
<script src="http://mleibman.github.io/SlickGrid/slick.core.js"></script>
<script src="http://mleibman.github.io/SlickGrid/slick.grid.js"></script>
<link rel="stylesheet" href="http://mleibman.github.io/SlickGrid/slick.grid.css">
<script src="http://mleibman.github.io/SlickGrid/slick.dataview.js"></script>
<script src="https://mleibman.github.io/SlickGrid/plugins/slick.headermenu.js"></script>
<link rel="stylesheet" href="https://mleibman.github.io/SlickGrid/plugins/slick.headermenu.css">
<div id="myGrid" style="width: 600px; height: 500px;"></div>

CSS

body{
    font-size:10px;    
}
.s-hidden {
    visibility:hidden;
    padding-right:10px;
}
.select {
    cursor:pointer;
    display:inline-block;
    position:relative;
    font:normal 11px/22px Arial, Sans-Serif;
    color:black;
    border:1px solid #ccc;
}
.styledSelect {
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    left:0;
    background-color:white;
    padding:0 10px;
    font-weight:bold;
}
.styledSelect:after {
    content:"";
    width:0;
    height:0;
    border:5px solid transparent;
    border-color:black transparent transparent transparent;
    position:absolute;
    top:9px;
    right:6px;
}
.styledSelect:active, .styledSelect.active {
    background-color:#eee;
}
.options {
    display:none;
    position:absolute;
    top:100%;
    right:0;
    left:0;
    z-index:999;
    margin:0 0;
    padding:0 0;
    list-style:none;
    border:1px solid #ccc;
    background-color:white;
    -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);
    -moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);
    box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);
}
.options li {
    padding:0 6px;
    margin:0 0;
    padding:0 10px;
}
.options li:hover {
    background-color:#39f;
    color:white;
}
.slick-headerrow-columns {
	height: 100px !important;
}

JavaScript

var grid;
var dataView;

var buttonFormat = function (row, cell, value, columnDef, dataContext) {
    return "";    
}

var columns = [
    {id: "title", name: "Title", field: "title"},
    {id: "term", name: "Term", field: "term"},
    {id: "%", name: "% Complete", field: "percentComplete"},
    {id: "detail", name: "Detail", field: "detail",formatter: buttonFormat}
];
columns[i].header = {
      menu: {
        items: [
          {
            iconImage: "../images/sort-asc.gif",
            title: "Sort Ascending",
            command: "sort-asc"
          },
          {
            iconImage: "../images/sort-desc.gif",
            title: "Sort Descending",
            command: "sort-desc"
          }
        ]
      }
    };

var options = {
		  rowHeight: 25,
		  editable: false,
		  enableAddRow: false,
		  enableCellNavigation: true,
		  forceFitColumns: false,
      headerrowheight:100,
		  multiColumnSort: true,
		  showHeaderRow: true,
      explicitInitialization: true
		};

$(function () {
    var data = [];
    for (var i = 0; i < 30; i++) {
        var days = Math.round(Math.random() * 10);
        data[i] = {
            id: i ,
            title: "Task " + i,
            term: days + " days",
            percentComplete: Math.round(Math.random() * 100),
            description: "We are working hard " + days + " days!",
            detail: null,
            toString:function(){
                var str = "";
                str += "Title:" + this.title + "<br/>";
                str += "Term:" + this.term + "<br/>";
                str += "Comp:" + this.percentComplete + "<br/>";
                str += "<b>" + this.description + "</b>";
                return str;
            }
        };
    }
    
    dataView = new Slick.Data.DataView();    
    dataView.beginUpdate();
    dataView.setItems(data);
    dataView.endUpdate();
    
    grid = new Slick.Grid("#myGrid", dataView, columns, options);
    
    grid.onClick.subscribe(function (e, args) {
 ...