-
-
Save revskill10/8555856 to your computer and use it in GitHub Desktop.
/** @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> | |
) | |
} | |
}); |
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 :
WillMount
Render
DidMount
Render
DidUpate
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
Data is loading in its place but problem is that is still get no data available at the bottom and searching sorting pagination does not work at all