0

私はhtmltableを持っています。テーブルの各セルは、0001などのIDで識別されます。テーブルのディメンションは固定されていませんが、動的であるため、データベースに格納されている値の量に応じて、20個以上のセルが存在する可能性があります。特定のセルのテキストボックスの背景色を変更したいのですが。しかし、セルにアクセスする方法がわかりません。

私はこの構文を知っています:

// the whole background becomes green 
myTable.BgColor = "#008000"; 
// I see no changes
myTable.Rows[x].Column[y].BgColor = "#008000";


// I need a syntax like this
myTable.Cell(Id_cell).BgColor =  "#008000";
4

2 に答える 2

0

これを試して:

.aspx:

<asp:Table ID="table" runat="server" />

C# コード:

TableRow row = new TableRow();
TableCell cell = new TableCell();
cell.Text = "Testing";
cell.BackColor = System.Drawing.Color.Red;
row.Cells.Add(cell);
table.Rows.Add(row);

table.Rows[0].Cells[0].BackColor = System.Drawing.Color.Pink;
于 2013-02-06T10:12:37.690 に答える
0

次のように、個々のセルの背景色を設定できます。

myTable.Rows[0].Cells[1].BgColor = "#553322";

ここで、0 は必要な行番号です。この場合は最初の行であり、1 は必要なセル番号です。この場合、インデックスは 0 から始まるため、2 番目のセルです。これは、ページの読み込みなどでテーブルがレンダリングされる前に行う必要があります。 .

これを、次のように ID のセルの色を設定するメソッドに一般化できます。

private void SetColorByCellId(HtmlTable table, string id, string color)
{
    for (int i = 0; i < table.Rows.Count; i++)
    {
        for (int j = 0; j < table.Rows[i].Cells.Count; j++)
        {
            if (table.Rows[i].Cells[j].ID == id)
            {
                table.Rows[i].Cells[j].BgColor = color;
            }
        }
    }
}

次に、次のように呼び出します。

SetColorByCellId(myTable, "0001", "#553322");
于 2013-02-06T10:17:19.623 に答える