easyui datagrid 动态生成列和行数据以超链接的形式展示问题

easyui datagrid 动态生成列和行数据以超链接的形式展示问题,第1张

动态产生列的代码,其实就是按datagrid所需列的json格式,拼凑成字符串还可以实现列合并

//用字符串产生grid所需的列

function AddColspanGridColumn(fieldName, title, width, align, rowStyle, formatterStyle,colspan) {

var columnStr = ""

//Easyui的datagrid列的基本格式

columnStr = "{field: '" + fieldName + "', title: '" + title + "', width: " + width

//对齐方式

if (align != "" &&align != null &&align != undefined)

columnStr += ",align:'" + align + "'"

//是否合并列

if (colspan != 0 &&colspan != "" &&colspan != null &&colspan != undefined)

columnStr += ",colspan:" + colspan

//是否需要行样式

if (rowStyle != "" &&rowStyle != null &&rowStyle != undefined)

columnStr += ",styler: function (val, row, index) {return '" + rowStyle + "'}"

if (formatterStyle != "" &&formatterStyle != null &&formatterStyle != undefined)

columnStr += ",formatter: function (val, row, index) {" +

"if (val == '' || val == undefined) val = '0'" +

"return \"<span style='" + formatterStyle + "'>\"+val+\"</span>\"}"

columnStr += "}"

return columnStr

}

然后把产生的json字符串给datagrid,

var options = $("#" + gridName).datagrid("options")

var columnstr =

AddColspanGridColumn("AVG_PRICE", "户均价", 80, "left",

"background-color:#F6B03E",

"font-size:14pxfont-weight:bold",

0)

options.columns = eval(columnstr)

设置列内容为超链接,参考函数里的formatter,设置列的内容的

你在html中如果使用了easyui的标签,再通过js去加载。那么无论是easyui的什么组件,都会加载两次。最常见的是datagrid的加载两次。我原来就经常犯这问题,无意间发现会加载两次,之后就不在Html中定义相应的属性了。只通过js来加载

要先初始化tabs后才能调用add方法,使用样式来初始化easyUI需要在dom

ready前将html代码添加到dom中,要不也无法初始化

var

tab

=

$("<div

id='tab_row_"

+

r

+

"_column_"

+

c

+

"'

class='easyui-tabs'

style='width:500pxheight:250px'>")

$('#xxxx').append(tab)

tab.tab()//要手动调用tabs进行初始化

var

content

=

"<table

id='table_datagrid_'"

+

view.id

+"></table>"

tab.tabs('add',

{

title:

view.title,

content

:

content,

closable:

true

})


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11643329.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存