无法访问表格颜色属性

时间:2017-07-13 01:02:41

标签: c# asp.net

出于某种原因,在asp.net的C#代码背后,我无法通过它的ID调用该表来设置它的背面颜色属性。我试过了,似乎什么都没有用

这是我的asp.net表标签:

<table id="ptbl" runat="server" cellpadding="2" width="640px" border="1">

这里有类似于我在后面的C#代码中做什么,但它不识别id

ptbl.Attributes.Add("style", "background-color:red")");

有任何想法/建议吗?

更新:这是代码。它中有一个布局模板,所以不知何故它无法看到表格ID,但如果我从中获取它,那么它就会看到它。我能做什么。我需要listview来获取数据

  <asp:ListView ID="ListView1" runat="server" Style="color: white; font-weight: bold">
        <LayoutTemplate>
            <table id="ptbl" runat="server" cellpadding="2" width="640px" border="1" style="color: black; font-weight: bold">
                <tr runat="server">
                    <th runat="server">Ps</th>
                    <th runat="server">P</th>
                    <th runat="server">T</th>
                </tr>
                <tr runat="server" id="itemPlaceholder" />
            </table>
            <asp:DataPager runat="server" ID="ContactsDataPager" PageSize="90">
                <Fields>
                    <asp:NextPreviousPagerField ShowFirstPageButton="true" ShowLastPageButton="true"
                        FirstPageText="|&lt;&lt; " LastPageText=" &gt;&gt;|"
                        NextPageText=" &gt; " PreviousPageText=" &lt; " />
                </Fields>
            </asp:DataPager>
        </LayoutTemplate>
        <ItemTemplate>
            <tr runat="server">
                <td>
                    <asp:Label ID="Label1" runat="server"><%# Eval("Ps") %></asp:Label></td>
                <td>
                    <asp:Label ID="Label2" runat="server"><%# Eval("P") %></asp:Label></td>
                <td>
                    <asp:Label ID="Label3" runat="server"><%# Eval("T") %></asp:Label></td>
            </tr>
        </ItemTemplate>
    </asp:ListView>

布局模板再次导致问题。我如何使用列表视图和表格与布局模板。我知道现在已经变形了一些,但任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

在ListView1上调用DataBind()之前,您无法访问ptbl表。在调用之后,数据集中有数据,那么您可以像这样引用ptbl表:

    protected void Page_Load(object sender, EventArgs e)
    {
        var tbl = new DataTable();
        tbl.Columns.Add("Ps", typeof(Int32));
        tbl.Columns.Add("P", typeof(string));
        tbl.Columns.Add("T", typeof(string));

        var r = tbl.NewRow();
        r[0] = 99;
        r[1] = "Hey";
        r[2] = "USA";
        tbl.Rows.Add(r);
        ListView1.DataSource = tbl;
        ListView1.DataBind();

        var ptbl = (HtmlTable)ListView1.FindControl("ptbl");
        ptbl.Style.Add("background-color", "red");
    }