Matrixdropdown

Matrix with multiple choices for every column - Matrix Dropdown question

                        

    
        Survey.StylesManager.applyTheme("orange");
    


var json = {questions: [
{ type: "matrixdropdown", name: "frameworksRate", title: "Please tells us your opinion about JavaScript MVVM frameworks",
    choices: ["Excelent", "Good", "Average", "Fair", "Poor"],
    columns: [{ name: "using", title: "Do you use it?", choices: ["Yes", "No"], cellType: "radiogroup" }, 
              { name: "experience", title: "How long do you use it?", choices: [{value: 5, text:"3-5 years"}, {value: 2, text:"1-2 years"}, {value: 1, text:"less then a year"}] }, 
              { name: "strength", title: "What is main strength?", choices: ["Easy", "Compact", "Fast", "Powerfull"], cellType: "checkbox" }, 
              { name: "knowledge", title: "Please describe your experience", cellType:"text" },
              { name: "rate", title: "Please rate the framework itself" }],
    rows: [{ value: "angularv1", text: "angularjs v1.x" }, 
           { value: "angularv2", text: "angularjs v2" },
           { value: "knockoutjs" }, 
           { value: "reactjs"}]}
]};

window.survey = new Survey.Model(json);


    survey.onComplete.add(function(result) {
        document.querySelector('#surveyResult').textContent =
            "Result JSON:\n" + JSON.stringify(result.data, null, 3);
    });


function onAngularComponentInit() {
    Survey.SurveyNG.render("surveyElement", { 
        model: survey 
    });
}
var HelloApp =
    ng.core
        .Component({
            selector: 'ng-app',
            template: '<div id="surveyContainer" class="survey-container contentcontainer codecontainer"><div id="surveyElement"></div></div> '})
        .Class({
            constructor: function() {
            },
            ngOnInit: function() {
                onAngularComponentInit();
            }
    });
document.addEventListener('DOMContentLoaded', function() {
    ng.platformBrowserDynamic.bootstrap(HelloApp);
});


                    
<!DOCTYPE html>
<html>
<head>
    <title>Matrix with multiple choices for every column - Matrix Dropdown question, Angular2 Survey Library Example</title>


    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://npmcdn.com/zone.js/dist/zone-evergreen"></script>
    <script src="https://npmcdn.com/core-js@2.6.5/client/shim.min.js"></script>
    <script src="https://npmcdn.com/rxjs@5.0.0-beta.6/bundles/Rx.umd.js"></script>
    <script src="https://npmcdn.com/@angular/core@2.0.0-rc.5/bundles/core.umd.js"></script>
    <script src="https://npmcdn.com/@angular/common@2.0.0-rc.5/bundles/common.umd.js"></script>
    <script src="https://npmcdn.com/@angular/compiler@2.0.0-rc.5/bundles/compiler.umd.js"></script>
    <script src="https://npmcdn.com/@angular/platform-browser@2.0.0-rc.5/bundles/platform-browser.umd.js"></script>
    <script src="https://npmcdn.com/@angular/platform-browser-dynamic@2.0.0-rc.5/bundles/platform-browser-dynamic.umd.js"></script>
<script src="https://surveyjs.azureedge.net/1.1.15/survey.angular.js"></script>
<link href="https://surveyjs.azureedge.net/1.1.15/survey.css" type="text/css" rel="stylesheet" />
    <link rel="stylesheet" href="./index.css">

</head>
<body>
            <ng-app></ng-app>
    <div id="surveyResult"></div>

<script type="text/javascript" src="./index.js"></script>

</body>
</html>

Set question.columnLayout property to "vertical" ("horizontal" by default) to invert columns and rows.

Change column layout: default is 'horizontal'.

survey.getQuestionByName('frameworksRate').columnLayout = 'vertical'; survey.render();