嘿伙计们我需要帮助我正在开发的应用程序。
我正在尝试将css类/样式添加到表中,具体取决于我从数据库中获取的某个值(例如0 - 2)。
这是我需要更改表格样式的代码
Public Function projectType(ByVal value As Integer)
Dim projectName As String
If value = 0 Then
projectName = "Project"
mytable.AddAttributes("Style", "Background-color:#444444")
ElseIf value = 1 Then
projectName = "Support"
Else
projectName = "Not available"
End If
Return projectName
End Function
标记:
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatColumns="1"
RepeatDirection="Vertical" CellPadding="0" CellSpacing="0">
<ItemTemplate>
<table cellpadding="0" cellspacing="0" style="width: 100%; text-align: left; border-bottom: 1px solid #999999;
padding-bottom: 15px;">
<tr>
<td style="width: 110px; vertical-align: top; padding-left: 20px; padding-top: 5px;
padding-bottom: 5px;">
<asp:Label ID="Label5" runat="server" Text='<%# projectType(Eval("Type")) %>' Font-Names="Verdana"
Font-Size="9pt" EnableTheming="false" />
</td>
<td style="width: 110px; vertical-align: top; padding-left: 20px; padding-top: 5px;
padding-bottom: 5px;">
<asp:Label ID="Label2" runat="server" Text='<%# hoursCheck(Eval("Duration")) %>'
Font-Names="Verdana" Font-Size="9pt" Style="text-align: right" EnableTheming="false" />
</td>
</tr>
<tr>
<td colspan="2" style="padding-bottom: 5px; padding-top: 5px; text-align: center">
<asp:Label ID="Label7" runat="server" Text='<%# Eval("FullName") %>' Font-Names="Verdana"
Font-Size="7pt" EnableTheming="false" />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
从这个函数我需要通过获取发送者的父表来访问该表,因为我无法明确说我想要Datalist1,因为我有5个,我该怎么做?
答案 0 :(得分:0)
首先,请摆脱内联样式并用CSS类替换它们。以后会为你节省很多麻烦。例如,有两个CSS类,一个用于&#34;项目&#34;另一个用于&#34;支持&#34;和&#34;不可用&#34;
至于实际问题,最容易想到的是将逻辑拆分为两个函数,一个用于文本,一个用于css类:
Public Function projectTypeText(ByVal value As Integer)
...
Return projectName
End Function
Public Function projectTypeClass(ByVal value As Integer)
...
Return projectCssClass
End Function
然后完全像你一样使用它:
<%-- This might actually need runat="server", not sure --%>
<table cellpadding="0" cellspacing="0" style='<%# projectTypeClass(Eval("Type")) %>'
<asp:Label ID="Label5" runat="server" Text='<%# projectType(Eval("Type")) %>'
注意:如果你绝对需要处理内联类,你可以让projectTypeStyle
返回Background-color:#444444
,但是在标记内你需要做那些令人讨厌的事情:
<table cellpadding="0" cellspacing="0" style='<%# "width: 100%; rest of styles; " + projectTypeStyle(Eval("Type")) %>'
这太可怕了,所以请不惜一切代价避免。