gpt4 book ai didi

javascript - 使用Javascript将两个DataTable列合并为一个

转载 作者:行者123 更新时间:2023-12-02 15:30:11 24 4
gpt4 key购买 nike

我目前正在使用Groovy / Grails和Javascript。

我目前正在使用的代码似乎没有遵循DataTables实现方式的标准(至少不是我所看到的;我是DataTables的新手,找不到与我类似的东西我看到)

我需要将“调查名称”和“类型”列合并为一个列。
“调查名称/类型”列中的示例数据:“这是我的调查名称(类型)”

Controller :
表定义在 Controller 中声明。我不太确定为什么在这里而不是在gsp上定义它们...

def impTableConfigs = [
id: [ title: '', sortIndex: 'id', visible: false ],
surveyId: [ title: 'Survey ID Number', sortIndex: 'surveyId', visible: true ],
surveyName: [ title: 'Survey Name', sortIndex: 'surveyName', visible: true],
type: [ title: 'Survey Type', sortIndex: 'type.code', visible: true]
]

def imp = {
// Check is user is logged in

// Check the users role

def dataMemberNames = getDataMemberNames(impTableConfigs)
def editingShtuff = userService.getUserEditing()

withFormat{
html{
return [
title: "Surveys",
editingShtuff : editingShtuff ,
selectedRefugeId: params.filter,
colNames: dataMemberNames,
colTitles: dataMemberNames.collect{
impTableConfigs[it]["title"]
}
]
}
json{
def args = getListDataParams(impTableConfigs, dataMemberNames, editingShtuff)
def results = getFormattedImpListData(
impTableConfigs,
editingShtuff ,
args.refuge,
args.max,
args.offset,
args.sort,
args.sortDir
)
render results as JSON
}
}
}

普惠制
$(document).ready(function() {
var ops = {
editAction:'${createLink(controller:"survey", action:"edit")}',
source:'${createLink(controller:"report", action:"imp.json")}?filter='+$("#filter option:selected").val(),
swfUrl:'${resource(dir:'css/data-tables-tabletools',file:'copy_csv_xls_pdf.swf')}',
colNames:<%= colNames as JSON %>,
selectable: false,
useCache: false,
csvAction: '${createLink(action:"imp_download_csv")}',
pdfAction: '${createLink(action:"imp_download_pdf")}',
csvParams: getFilterParam,
pdfParams: getFilterParam
};

// Initialize dataTable
var table = new primr.dataTable("#dataTable", ops, {
aoColumnDefs: [ { aTargets: [8], bSortable: false }]
});
window.table = table;

// Connect filter events
$("#filter").change(function(){
var filter = $("#filter option:selected").val();
table.changeSource("${createLink(controller:"report", action:"imp.json")}?filter=" + filter);
})
});

GSP中的HTML
<table id="dataTable">
<thead>
<tr>
<g:each in="${colTitles}" var="it" status="i">
<th>${it}<sup>${i}</sup></th>
</tr>
</thead>
<tbody>

</tbody>

我在想我需要将列定义从Controller移到GSP,并将它们放入aoColumnDefs中,并格式化SurveyName以便将2列合并在一起?但是,我非常执着于此,因为impTableConfigs变量在Controller中的多种方法中使用。 (我已经包括了一种这样的方法)。

最佳答案

没关系,我已经解决了问题,但是我的浏览器正在缓存域对象和 Controller 。

我将 setter/getter 放入域对象中以合并列值,并将其放入impTableConfigs中

def impTableConfigs = [
id: [ title: '', sortIndex: 'id', visible: false ],
surveyId: [ title: 'Survey ID Number', sortIndex: 'surveyId', visible: true ],
surveyNameAndType: [title: 'Survey Name/(Type)', sortIndex: 'surveyName', visible: true],
//surveyName: [ title: 'Survey Name', sortIndex: 'surveyName', visible: true ],
//type: [ title: 'Survey Type', sortIndex: 'type.code', visible: true ],
]

关于javascript - 使用Javascript将两个DataTable列合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com