Created
January 22, 2014 09:25
-
-
Save revskill10/8555856 to your computer and use it in GitHub Desktop.
Integrate Datatable with React.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** @jsx React.DOM */ | |
var LopMonHoc = React.createClass({ | |
getInitialState: function(){ | |
return {data: []} | |
}, | |
loadData: function(){ | |
$.ajax({ | |
url: '/daotao/lops', | |
success: function(data){ | |
this.setState({data: data.lops}); | |
}.bind(this) | |
}) | |
}, | |
componentWillMount: function(){ | |
this.loadData(); | |
}, | |
componentDidMount: function(){ | |
var self = this; | |
$('#mytable').dataTable({ | |
"sPaginationType": "bootstrap", | |
"bAutoWidth": false, | |
"bDestroy": true, | |
"fnDrawCallback": function() { | |
self.forceUpdate(); | |
}, | |
}); | |
}, | |
componentDidUpdate: function(){ | |
$('#mytable').dataTable({ | |
"sPaginationType": "bootstrap", | |
"bAutoWidth": false, | |
"bDestroy": true, | |
}); | |
}, | |
render: function(){ | |
var x = this.state.data.map(function(d, index){ | |
return <tr><td>{index+1}</td><td>{d.ma_lop}</td><td>{d.ten_mon_hoc}</td></tr> | |
}); | |
return ( | |
<div class="table-responsive"> | |
<h4>Hello</h4> | |
<table class="table table-bordered" id="mytable"> | |
<thead> | |
<tr class="success"> | |
<td>Stt</td> | |
<td>Mã lớp</td> | |
<td>Tên môn học</td> | |
</tr> | |
</thead> | |
<tbody> | |
{x} | |
</tbody> | |
</table> | |
</div> | |
) | |
} | |
}); |
Hi All
I am using jquery DataTable in React Js and I have written specific code for the rendering of a cell. My code is
var handleView = this.handleClick;
x.mRender = function(obj, data, type, row) {
var i1 = $("");
var i2 = $("");
i1.attr("onclick","handleView();");
i2.attr("onclick","handleView();");
var cellContent = $("
return cellContent.prop('outerHTML');
};
I am not able to trigger onClick on i1 / i2.
It is showing that handleView() is not defined.
Could anyone help me out. I have tried many ways but its not finding that funtion
What about Functional Components
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
If anyone is having a problem, You should implement render() + shouldComponentUpdate() + componentDidUpdate() + componentWillMount()
componentWillMount() : for Network/API stuff
componentDidUpdate() : You init the DataTable
$('#YourTable').DataTable();
shouldComponentUpdate() :
return True;
(Default)render() : Render your elements like done above.
Here is a Lifecycle when you execute the App.JS :