在我的应用程序中,我使用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 回答
你是直接创建SQLTABLE吗?
你有没有尝试过:
然后您可以使用
#my-sqltable
作为选择器的第一部分 . 例如,要突出显示每隔一行:无法将特定样式传递给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中的数据列添加样式选项的好方法...我认为类更好 .