1

ポイントgとhの両方をカバーするGridviewSection508に準拠することは可能ですか?

セクション508のリンクhttp://www.access-board.gov/sec508/guide/1194.22.htmASP.Net のリンクセクション508コンプライアンスhttp://www.patuee.com/web/ASPX_Accessibility.html#t7

4

2 に答える 2

1

GridViewの問題は、テーブルが自動生成されることです。そのため、ListViewへの変換は手間がかかります。次に、ListViewテンプレートで任意の方法でテーブルマークアップを表示できます。

GridViewにこれを実行させるには、すぐに使用できるものから継承する新しいカスタムコントロールGridViewを作成する必要があります。次に、新しいコントロールのテーブルレンダリング出力をカスタマイズできます。そこにあるカスタムGridViewの多くの例:)

Microsoftによると、アクセシビリティはGridViewで実現できます。

http://msdn.microsoft.com/en-us/library/ms228004.aspx#guideline_13__separating_structure_from_presentation

于 2012-05-07T12:52:43.633 に答える
0

いくつかの調査とグーグルの後、私は解決策を見つけました。以下のコードを書き留めて、RowDataBoundイベントで呼び出しました。

private void AddGridHeadersAttr(オブジェクト送信者、GridViewRowEventArgs e、GridViewグリッド)

{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        for (int col = 0; col <= e.Row.Cells.Count - 1; col++)
        {
            e.Row.Cells[col].Attributes.Add("id", "ColumnHeader_" + Grid.Columns[col].HeaderText);
        }
    }
    else if (e.Row.RowType == DataControlRowType.DataRow)
    {
        for (int col = 0; col <= e.Row.Cells.Count - 1; col++)
        {
            Object oCell = e.Row.Cells[col];
            if (oCell is DataControlFieldHeaderCell)
            {
                ((DataControlFieldHeaderCell)oCell).Attributes.Add("id", "RowHeader_" + Grid.Columns[col].HeaderText + e.Row.RowIndex.ToString());//Grid.DataKeys[e.Row.RowIndex].Value.ToString());
            }
            else
            {
                ((DataControlFieldCell)oCell).Attributes.Add("headers", "ColumnHeader_" + Grid.Columns[col].HeaderText + " RowHeader_" + Grid.Columns[col].HeaderText + e.Row.RowIndex.ToString()); // Grid.DataKeys[e.Row.RowIndex].Value.ToString());
            }
        }
    }
}

これが将来誰かに役立つことを願っています。

于 2012-05-08T12:39:31.237 に答える