【问题标题】:ASP.Net - Static TableHeaderRow and Dynamic Tablerows, THR disappeared and CSS problemASP.Net - 静态 TableHeaderRow 和动态表行,消失和 CSS 问题
【发布时间】: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


【解决方案1】:

我已选择使用行和单元格的样式属性来动态属性 CSS。

像这样:

        'CSS TableEdit
        With tbEdit.Style
            .Add("width", "100%")
            .Add("border", "1px solid #868583")
            .Add("text-align", "center")
            .Add("padding", "8px")
        End With

        'CSS TableHeaderRow
        With tbEdit.Rows(0).Style
            .Add("background-color", "#5D7B9D")
            .Add("text-align", "center")
            .Add("vertical-align", "center")
            .Add("color", "white")
            .Add("border", "1px solid #868583")
        End With

        'CSS TableHeaderCells
        For w = 0 To 6
            With tbEdit.Rows(0).Cells(w).Style
                .Add("text-align", "center")
                .Add("padding", "8px")
                .Add("border", "1px solid #868583")
            End With
        Next

【讨论】:

    猜你喜欢
    • 2016-07-25
    • 2021-11-04
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多