динамические поля, использующие jquery в jtable

1

здесь поля жестко закодированы, но я хочу получать поля динамически для своей задачи, например, у меня будет список в этом jsp, который содержит имена полей, например: list=[id,name,salary,doj] этот список может измениться для новых Запросы. Могу ли я сделать некоторые идеи для этого?

 fields: {
                    PersonId: {
                        key: true,
                        create: false,
                        edit: false,
                        list: false
                    },
                    Name: {
                        title: 'Author Name',
                        width: '40%'
                    },
                    Age: {
                        title: 'Age',
                        width: '20%'
                    },
                    Watch: {
                        title: 'Watch',
                        width: '20%',
                        display: function (data) {
                        return '';
                    },
                    RecordDate: {
                        title: 'Record date',
                        width: '30%',
                        type: 'date',
                        create: false,
                        edit: false
                    }
                }
            });
Теги:
jsp
pagination
jtable

2 ответа

10
Лучший ответ

Вы можете создавать Javascript-код динамически на стороне сервера.

Для клиентской стороны вы также можете создавать поля динамически.

var fields = {
    PersonId: { //I assume that this field is standard
        key: true,
        list: false
    }
};

if(someCondition) {
    fields['Name'] = {
        title: 'Author Name',
        width: '40%'
    };
}

//Add other dynamic fields

$('#PersonTableContainer').jtable({
    title: 'Table of people',
    actions: {
        listAction: '/GettingStarted/PersonList',
        createAction: '/GettingStarted/CreatePerson',
        updateAction: '/GettingStarted/UpdatePerson',
        deleteAction: '/GettingStarted/DeletePerson'
    },
    fields: fields
});

В вашем состоянии вы можете добавить поля из списка.

  • 0
    это было потрясающе .... это прекрасно работает для меня ....
  • 0
    Привет, сэр, могу ли я создать fields в методе AJAX? Я пытался, но не повезло
0

Я отправлял весь код, ссылаясь на приведенный выше ответ

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Setup and Load Data to jTable using Servlets and JSP</title>
<!-- Include one of jTable styles. -->
<link href="css/metro/crimson/jtable.css" rel="stylesheet" type="text/css" />
<link href="css/jquery-ui-1.10.3.custom.css" rel="stylesheet" type="text/css" />
<!-- Include jTable script file. -->
<script src="js/jquery-1.8.2.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.10.3.custom.js" type="text/javascript"></script>
<script src="js/jquery.jtable.js" type="text/javascript"></script>
<script type="text/javascript">
<% List<String> strList = new ArrayList<String>();
strList.add("one");
strList.add("two");
strList.add("three"); %>

var jsArray = [<% for (int i = 0; i < strList.size(); i++) { %>"<%= strList.get(i) %>"<%= i + 1 < strList.size() ? ",":"" %><% } %>];
var fields = {

    };
var arrayLength = jsArray.length;

    for(var i=0;i<arrayLength;i++)
        {
    fields[jsArray[i]] = {
        title: jsArray[i],
        width: '40%'
    };
}

    $(document).ready(function () {
        $('#PersonTableContainer').jtable({
            title: 'Table of people',
            actions: {
                listAction: 'CRUDController?action=list',
                createAction:'CRUDController?action=create',
                updateAction: 'CRUDController?action=update',
                deleteAction: 'CRUDController?action=delete'
            },
            fields:fields

        });
        $('#PersonTableContainer').jtable('load');
    });

</script>
</head>
<body>
<div style="width:60%;margin-right:20%;margin-left:20%;text-align:center;">
<div id="PersonTableContainer"></div>
</div>


</body>
</html>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню