Open In App

jQWidgets jqxGrid rowdetailstemplate Property

Last Updated : 29 Mar, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

jQWidgets is a JavaScript framework for making web-based applications for PC and mobile devices. It is a very powerful, optimized, platform-independent, and widely supported framework. The jqxGrid is used to illustrate a jQuery widget that shows data in tabular form. Moreover, it renders full support for connecting with data, as well as paging, grouping, sorting, filtering, and editing.

The rowdetailstemplate property is used to specify the row details template. The rowdetails field is used to define the HTML that is to be used for the stated details. The rowdetailsheight field is used to define the height of the stated details. It is of object type and its default value is “null”.

Syntax:

  • Set the rowdetailstemplate property.
$('Selector').jqxGrid({ rowdetailstemplate: null });
  • Return the rowdetailstemplate property.
var rowdetailstemplate = $('Selector').jqxGrid('rowdetailstemplate');

Linked Files: Download jQWidgets from the given link. In the HTML file, locate the script files in the downloaded folder.

<link rel=”stylesheet” href=”jqwidgets/styles/jqx.base.css” type=”text/css” />
<script type=”text/javascript” src=”scripts/jquery-1.11.1.min.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxcore.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqx-all.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxdata.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxbuttons.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxscrollbar.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxmenu.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxgrid.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxgrid.selection.js”></script>

Example 1: The below example illustrates the jqxGrid rowdetailstemplate property in jQWidgets.

HTML




<!DOCTYPE html>
<html lang="en">
  
<head>
    <link rel="stylesheet"
          href="jqwidgets/styles/jqx.base.css" 
          type="text/css" />
    <script type="text/javascript" 
            src="scripts/jquery-1.11.1.min.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxcore.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxdata.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxbuttons.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxscrollbar.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxmenu.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxgrid.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxgrid.selection.js">
    </script>
      <script type="text/javascript" 
            src="jqwidgets/jqxgrid.columnsresize.js">
    </script>
</head>
  
<body>
    <center>
        <h1 style="color: green">
            GeeksforGeeks
        </h1>      
        <h3>
              jQWidgets jqxGrid rowdetailstemplate property
          </h3>                    
        <div id="jqxg"></div>        
        <div>
            <input type="button" 
                   id="jqxBtn" 
                   style="margin-top: 25px" 
                   value="Click here" />
        </div>        
        <div id="log"></div>       
    </center>
  
    <script type="text/javascript">
        $(document).ready(function () {
            var d = new Array();
            var subjectNames =
                ["C++", "Scala", "Java", "C", "R", "JavaScript"];
  
            var pageNumber =
                ["7", "8", "12", "11", "10", "19"];
  
            for (var j = 0; j < 50; j++) {
                var r = {};
                r["subjectnames"] =
                    subjectNames[(Math.floor(Math.random() * subjectNames.length))];
  
                r["pagenumber"] =
                    pageNumber[(Math.floor(Math.random() * pageNumber.length))];
                d[j] = r;
  
            }
            var src = {
                localdata: d,
                datatype: "array",
            };
            var inrow_details = function (index, parent_element) {
                var row_details = $($(parent_element).children(0));
                row_details.text("Info for: " + index);
            };
            var data_Adapter = new $.jqx.dataAdapter(src);
            $("#jqxg").jqxGrid({
                source: data_Adapter,
                theme: 'energyblue',
                rowdetails: true,
                initrowdetails: inrow_details,
                rowdetailstemplate: {
                    rowdetailsheight: 45,
                    rowdetails: "<div style='margin-top: 12px;'></div>",
                },
                height: "240px",
                width: "240px",
                columns: [
                    {
                        text: "Subject Name",
                        datafield: "subjectnames",
                        width: "120px",
                    },
                    {
                        text: "Page No.",
                        datafield: "pagenumber",
                        width: "120px",
                    },
                ],
            });
  
            $("#jqxBtn").jqxButton({
                width: "180px",
                height: "30px",
            });
            $("#jqxBtn").on("click", function () {
                $('#jqxg').jqxGrid('showrowdetails', 1);
                var rdt = $('#jqxg').jqxGrid('rowdetailstemplate');
                $('#log').text(rdt.rowdetailsheight);
            });
        });
    </script>
</body>
</html>


Output:

 

Example 2: The below example illustrates the jqxGrid rowdetailstemplate property in jQWidgets by setting its value as “null”.

HTML




<!DOCTYPE html>
<html lang="en">
  
<head>
    <link rel="stylesheet"
          href="jqwidgets/styles/jqx.base.css" 
          type="text/css" />
    <script type="text/javascript" 
            src="scripts/jquery-1.11.1.min.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxcore.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxdata.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxbuttons.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxscrollbar.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxmenu.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxgrid.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxgrid.selection.js">
    </script>
      <script type="text/javascript" 
            src="jqwidgets/jqxgrid.columnsresize.js">
    </script>
</head>
  
<body>
    <center>
        <h1 style="color: green">
            GeeksforGeeks
        </h1>
          
        <h3>jQWidgets jqxGrid rowdetailstemplate property</h3>
                      
        <div id="jqxg"></div>
          
        <div>
            <input type="button" id="jqxBtn" 
                   style="margin-top: 25px" value="Click here" />
        </div>        
        <div id="log"></div>
          
    </center>
  
    <script type="text/javascript">
        $(document).ready(function () {
            var d = new Array();
            var subjectNames =
                ["C++", "Scala", "Java", "C", "R", "JavaScript"];
  
            var pageNumber =
                ["7", "8", "12", "11", "10", "19"];
  
            for (var j = 0; j < 50; j++) {
                var r = {};
                r["subjectnames"] =
                    subjectNames[(Math.floor(Math.random() * subjectNames.length))];
  
                r["pagenumber"] =
                    pageNumber[(Math.floor(Math.random() * pageNumber.length))];
                d[j] = r;
  
            }
            var src = {
                localdata: d,
                datatype: "array",
            };
            var inrow_details = function (index, parent_element) {
                var row_details = $($(parent_element).children(0));
                row_details.text("Info for: " + index);
            };
            var data_Adapter = new $.jqx.dataAdapter(src);
            $("#jqxg").jqxGrid({
                source: data_Adapter,
                theme: 'energyblue',
                rowdetails: true,
                initrowdetails: inrow_details,
                rowdetailstemplate: null,
                height: "240px",
                width: "240px",
                columns: [
                    {
                        text: "Subject Name",
                        datafield: "subjectnames",
                        width: "120px",
                    },
                    {
                        text: "Page No.",
                        datafield: "pagenumber",
                        width: "120px",
                    },
                ],
            });
  
            $("#jqxBtn").jqxButton({
                width: "180px",
                height: "30px",
            });
            $("#jqxBtn").on("click", function () {
                $('#jqxg').jqxGrid('showrowdetails', 2);
                var rdt =
                    $('#jqxg').jqxGrid('rowdetailstemplate');
                if (rdt === null) {
                    $('#log').text(rdt);
                }
                else {
                    $('#log').text("Not null!");
                }
            });
        });
    </script>
</body>
</html>


Output:

 

Reference: https://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxgrid/jquery-grid-api.htm?search=



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads