0

<div>タグ内のセルの内容をレンダリングするGridviewコントロール用の単純なアダプターを作成したいと思います。

としてレンダリングする代わりに

<table>
  <tr>
    <td>Some Data</td>
    <td>Some Data</td>
  </tr>
</table>

次のようにレンダリングしたい

<table>
  <tr>
    <td><div>Some Data</div></td>
    <td><div>Some Data</div></td>
  </tr>
</table>

これは、JqueryまたはRowDataBoundを使用して他の方法で実行できることを理解していますが、具体的にはアダプターを使用して実行したいと思います。

デフォルトの.NetGridviewを作成するアダプターのコードを確認する方法があれば、変更は簡単だと思いますが、そのコードを取得する方法がわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

3

Microsoftは、 CSSフレンドリーコントロールアダプターの形式でコントロールアダプターのリファレンス実装を提供しています

彼らがGridViewAdapterをどのように実装したかを見ることができます

行のレンダリングを処理するコードの一部を次に示します

private void WriteRows(HtmlTextWriter writer, GridView gridView, GridViewRowCollection rows, string tableSection)
{
    if (rows.Count > 0)
    {
        writer.WriteLine();
        writer.WriteBeginTag(tableSection);
        writer.Write(HtmlTextWriter.TagRightChar);
        writer.Indent++;

        foreach (GridViewRow row in rows)
        {
            if (!row.Visible)
                continue;

            writer.WriteLine();
            writer.WriteBeginTag("tr");

            string className = GetRowClass(gridView, row);
            if (!String.IsNullOrEmpty(className))
            {
                writer.WriteAttribute("class", className);
            }

            writer.Write(HtmlTextWriter.TagRightChar);
            writer.Indent++;

            foreach (TableCell cell in row.Cells)
            {
                DataControlFieldCell fieldCell = cell as DataControlFieldCell;
                if ((fieldCell != null) && (fieldCell.ContainingField != null))
                {
                    DataControlField field = fieldCell.ContainingField;
                    if (!field.Visible)
                    {
                        cell.Visible = false;
                    }

                    // Apply item style CSS class
                    TableItemStyle itemStyle;
                    switch (row.RowType)
                    {
                        case DataControlRowType.Header:
                            itemStyle = field.HeaderStyle;
                            // Add CSS classes for sorting
                            SetHeaderCellSortingClass(gridView, field, itemStyle);
                            break;
                        case DataControlRowType.Footer:
                            itemStyle = field.FooterStyle;
                            break;
                        default:
                            itemStyle = field.ItemStyle;
                            break;
                    }
                    if (itemStyle != null && !String.IsNullOrEmpty(itemStyle.CssClass))
                    {
                        if (!String.IsNullOrEmpty(cell.CssClass))
                            cell.CssClass += " ";
                        cell.CssClass += itemStyle.CssClass;
                    }
                }

                writer.WriteLine();
                cell.RenderControl(writer);
            }

            writer.Indent--;
            writer.WriteLine();
            writer.WriteEndTag("tr");
        }

        writer.Indent--;
        writer.WriteLine();
        writer.WriteEndTag(tableSection);
    }
}
于 2012-09-12T18:30:02.927 に答える