首页 文章

Web2py SQLTABLE数据样式设置

提问于
浏览
0

在我的应用程序中,我使用SQLTABLE来显示内容 . 我必须为这个表数据指定一些css样式 . 请告诉我如何将样式设置为SQLTABLE数据 .

例:

#percengate datatype: decimal(5,2)
rows = db().select(db.t_tax.id,db.t_tax.percentage)
db.t_tax.percentage.represent = lambda r,v: str(v.percentage)+'%'
columns = ['t_tax.id','t_tax.percentage']
headers = {
    't_tax.id':{'label':T('id'),
    'class':'', #class name of the header
    'width':'', #width in pixels or %
    'truncate': 50, #truncate the content to...
    'selected': False #agregate class selected to this column
    },
    't_tax.percentage':{'label':T('Tax'),
    'class':'', #class name of the header
    'width':'', #width in pixels or %
    'truncate': 50, #truncate the content to...
    'selected': False #agregate class selected to this column
    }
}
table = SQLTABLE(rows,columns=columns,headers=headers,_width='100%',_class='datatable')

在此表中,我想右对齐Percentage列数据 . 现在它显示为左对齐的正常字符串(10.00%,20.00%) . 我找不到任何选项来指定仅对应于百分比列的对齐 .

我非常感谢任何评论 .

1 回答

  • 3

    你是直接创建SQLTABLE吗?

    你有没有尝试过:

    x = SQLTABLE(rows, ..., _id='my-sqltable')
    

    然后您可以使用 #my-sqltable 作为选择器的第一部分 . 例如,要突出显示每隔一行:

    #my-sqltable tr:nth-child(odd) td { background: gray; }
    

    无法将特定样式传递给sql-table中的不同列/单元格 . 通常你会做 x = SQLTABLE(..., _style=...) ,但即使这样,也没有简单的方法来定位你想要的列 .

    但是,您可以使用“headers”关键字的“class”参数创建一个将附加到给定列的类 . 将类设置为“some-class”并检查生成的标记 - 你应该看到你有th.some-class和td.some-class . 您可以使用该类来定位要设置样式的元素 . 同样,SQLTABLEs无法将“样式”属性附加到生成的TD节点 .

    您可以使用"extracolumns"并使用lambda函数(类似于 {'content': lambda row: DIV(row.some_val, _style='text-align: right'), ...} )设置内容,该函数将内容包装在DIV中并允许您右对齐,但实际上类更容易 . 你可能需要做这样的事情,使你的SQLTABLE看起来不一样,而不依赖于外部样式表......我只是不确定它是否会起作用 .

    如果您担心单独更新css或使代码更加模块化,则可以始终将STYLE元素传递给视图,或者直接在使用该样式的视图中创建 <style>...</style> enclosure . 虽然在技术上将样式标记放在HTML4x / XHTML中的head元素之外,但它仍然会解析 . 此外,在HTML5中,这完全100%有效 .

    Anyawy,我希望我已经回答了你的问题 . 我强烈建议你只使用一个类 - 在你的基础css中只能是 .align-right { text-align: right } ,因为这个类可以用在任何数量的东西上 . 这已经得到了代码的支持!

    如果这些选项都不可接受,那么我必须深入研究并编写自己的自定义TABLE类 . 您可以将SQLTABLE子类化,并找出一种向TABLE中的数据列添加样式选项的好方法...我认为类更好 .

相关问题