1

rowDataBoundのDataColumnの拡張プロパティにアクセスし、エラーキーが存在する場合に特定のクラスとツールチップを適用するための最良の方法は何ですか?

protected void gridView_rowDataBound(object sender, GridViewRowEventArgs e)
{
    switch (e.Row.RowType)
    {
        case DataControlRowType.Header:
            ((DataRow)e.Row.DataItem)...
            break;
        case DataControlRowType.DataRow:

            break;
    }
}

これは私が立ち往生する前に私が得たものです。DataRowキャストにDataColumnへの参照がないことに気づきました。

4

2 に答える 2

0

以下は私が思いついたものですが、残念ながら、それは1つのDataTableにのみ緊密に結合されています。複数のDataTableで使用するためにこれを行う方法はありますか?私は本当に自分のくだらない答えを受け入れたくありません。

protected void gridView_rowDataBound(object sender, GridViewRowEventArgs e)
{
    switch (e.Row.RowType)
    {
        case DataControlRowType.Header:
            foreach (DataColumn col in myDataTable.Columns)
            {
                if (col.ExtendedProperties["error"] != null)
                {
                    e.Row.Cells[col.Ordinal].CssClass = "error-cell";
                    e.Row.Cells[col.Ordinal].ToolTip = col.ExtendedProperties["error"].ToString();
                }
            }                 
            break;
        case DataControlRowType.DataRow:

            break;
    }
}
于 2010-11-04T12:15:54.307 に答える
0

これを行うためのメソッドを抽出して、すべてのグリッドRowDataBoundイベントから呼び出すことができます。これをグリッドユーティリティクラスに入れることができます。

public void ShowExtendedProperties(GridViewRow row, DataTable table)
{
switch (row.RowType)
    {
        case DataControlRowType.Header:
            foreach (DataColumn col in table.Columns)
            {
                if (col.ExtendedProperties["error"] != null)
                {
                    row.Cells[col.Ordinal].CssClass = "error-cell";
                    row.Cells[col.Ordinal].ToolTip = col.ExtendedProperties["error"].ToString();
                }
            }                 
            break;
        case DataControlRowType.DataRow:
            //I assume you have logic here, or other case statements?
            break;
    }
}
于 2010-12-02T02:54:04.063 に答える