【发布时间】:2020-09-23 17:13:05
【问题描述】:
这里有两个问题。
1) 静态 TableHeaderRow 已消失
这是我的桌子:
<asp:table id="tbEdit" runat="server" style="width: 100%;">
<asp:TableHeaderRow id="th_Row">
<asp:TableHeaderCell Scope="Column" Text="Scope" />
<asp:TableHeaderCell Scope="Column" Text="Site ID" />
<asp:TableHeaderCell Scope="Column" Text="Site Name" />
<asp:TableHeaderCell Scope="Column" Text="Address" />
<asp:TableHeaderCell Scope="Column" Text="CAP/ZIP" />
<asp:TableHeaderCell Scope="Column" Text="City" />
<asp:TableHeaderCell Scope="Column" Text="Country" />
</asp:TableHeaderRow>
</asp:table>
在页面加载事件中,我正在调用一个子例程来动态创建表格行、表格单元、各种控件并填写值。
这是该子程序的摘录:
For y = 0 To i
While myReader.Read
Dim tr As New TableRow
tbEdit.Rows.Add(tr)
tr.ID = "tr" & y
For z = 0 To 6
Select Case z
Case = 0
Dim tc As New TableCell
Dim ddl As New DropDownList
tbEdit.Rows.Item(y).Cells.Add(tc)
tbEdit.Rows.Item(y).Cells(z).Controls.Add(ddl)
ddl.ID = "ddlScope" & y & "-" & z
For x = 0 To iScopes
ddl.Items.Add(New ListItem(Scope(x).Name, Scope(x).ID.ToString))
Next
ddl.SelectedValue = myReader.Item(1)
Case = 1
Dim tc As New TableCell
Dim lbl As New Label
tbEdit.Rows.Item(y).Cells.Add(tc)
tbEdit.Rows.Item(y).Cells(z).Controls.Add(lbl)
lbl.ID = "lblSid" & y & "-" & z
lbl.Text = myReader.Item(2)
Case = 2
Dim tc As New TableCell
Dim tbx As New TextBox
tbEdit.Rows.Item(y).Cells.Add(tc)
tbEdit.Rows.Item(y).Cells(z).Controls.Add(tbx)
tbx.ID = "tbxSname" & y & "-" & z
tbx.Text = myReader.Item(3)
Case = 3
Dim tc As New TableCell
Dim tbx As New TextBox
tbEdit.Rows.Item(y).Cells.Add(tc)
tbEdit.Rows.Item(y).Cells(z).Controls.Add(tbx)
tbx.ID = "tbxAddress" & y & "-" & z
tbx.Text = myReader.Item(4)
Case = 4
Dim tc As New TableCell
Dim tbx As New TextBox
tbEdit.Rows.Item(y).Cells.Add(tc)
tbEdit.Rows.Item(y).Cells(z).Controls.Add(tbx)
tbx.ID = "tbxCap" & y & "-" & z
tbx.Text = myReader.Item(5)
Case = 5
Dim tc As New TableCell
Dim tbx As New TextBox
tbEdit.Rows.Item(y).Cells.Add(tc)
tbEdit.Rows.Item(y).Cells(z).Controls.Add(tbx)
tbx.ID = "tbxCity" & y & "-" & z
tbx.Text = myReader.Item(6)
Case = 6
Dim tc As New TableCell
Dim ddl As New DropDownList
tbEdit.Rows.Item(y).Cells.Add(tc)
tbEdit.Rows.Item(y).Cells(z).Controls.Add(ddl)
ddl.ID = "ddlCountry" & y & "-" & z
For x = 0 To iCountries
ddl.Items.Add(New ListItem(Country(x).Name, Country(x).ID.ToString))
Next
ddl.SelectedValue = myReader.Item(7)
End Select
Next
End While
Next
Tablerows 和控件以正确的方式创建和填充,一切都按预期工作,但 TableHeaderRow(应该是静态的)这一事实没有出现。我想避免动态创建它,因为它没有多大意义。谁能解释一下为什么会这样?
2) tbEdit CSS 被忽略
最初我的表 tbEdit 是一个简单的客户端 html 表,我安排了以下 CSS 代码(它工作正常):
#tbEdit table {
/* border-collapse: collapse; */
width: 100%;
border: 1px solid #868583;
}
#tbEdit th, #tbEdit td {
text-align: center;
padding: 8px;
border: 1px solid #868583;
}
#tbEdit tr:nth-child(1) {
background-color: #5D7B9D;
text-align: center;
vertical-align: middle;
color: white;
border: 1px solid #868583;
}
#tbEdit tr:nth-child(even):not(:first-child) {
background-color: #F7F6F2;
border: 1px solid #868583;
}
然后我不得不将 tbEdit 转换为一个 ASP 控件,从那时起,特定的 CSS 被忽略了,完全没有考虑到。为了将其绑定到 ASP 控件,我应该在 CSS 中进行哪些更改?
提前感谢您的时间和帮助。
问候,卢卡
【问题讨论】:
-
我已经解决了问题 nr.1,tbEdit.Rows.Item(y) 在 y = 0 处覆盖了标题。这里的修复:对于 y = 1 到 i + 1 任何人都可以帮助CSS 问题?
标签: css asp.net vb.net tableheader