La liaison d'une DataTable pour les Champs de Modèle d'un GridView

Je peux réussir à lier un DataTable à un GridView en automatique de génération de colonnes, mais j'ai besoin d'afficher plusieurs lignes de cellules pour l'une des colonnes. Pour ce faire, je veux utiliser un champ de modèle avec un modèle d'élément à l'aide d'un objet TextBox. - Je remplir la Table de données en ajoutant des colonnes, puis en ajoutant les lignes. Je sais que ma datatable est mis en place parce qu'il montre toutes les données (sauf pour le multi-bordée de cellules) comme je le veux. Mon problème est d'obtenir le contrôle gridview pour extraire mes données basées sur les noms de colonnes et de remplir les champs du modèle, j'ai mis en place. Si je tourne AutoGenerateColumns hors tension, puis le 4 templatefield colonnes apparaissent toujours (dans le bon montant, selon le datatable trop), tout en blanc, et si je l'ai mis à true, alors les 4 colonnes vides s'affichent, ainsi que 4 colonnes supplémentaires avec les mêmes en-têtes contenant mes données en utilisant les paramètres par défaut pour ce que contient la cellule pour afficher les informations.

    <asp:GridView ID="DataGrid1" runat="server" AutoGenerateColumns="False"     HeaderStyle-BorderStyle="None" CellPadding="3" ItemStyle-Wrap="true" >
    <Columns>
        <asp:TemplateField HeaderText="Code">
            <asp:ItemTemplate>
                <asp:Label ID="txtCode" runat="server" Text='<%# Eval("Code") %>'>

                </asp:Label>
            </asp:ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Title">
            <asp:ItemTemplate>
                <asp:Label ID="txtTitle" runat="server" Text='<%# Eval("Title") %>'>

                </asp:Label>
            </asp:ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Class">
            <asp:ItemTemplate>
                <asp:Label ID="txtClass" runat="server" Text='<%# Eval("Class") %>'>

                </asp:Label>
            </asp:ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="History">
            <asp:ItemTemplate>
                <asp:TextBox ID="txtHistory" runat="server" IsReadOnly="true" Text='<%# Eval("History")%>'>
                </asp:TextBox>
            </asp:ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Ci-dessus est la partie de mon asp.net code lié à la GridView en question. Voici comment j'ai configuré ma DataTable et le lier.

DataTable table = new DataTable();
table.Columns.Add("Code", typeof(string));
table.Columns.Add("Title", typeof(string));
table.Columns.Add("Class", typeof(string));
table.Columns.Add("History", typeof(string));
for (int i = 0; i < index; i++)
{
    table.Rows.Add(docs[i].Code, docs[i].Name, docs[i].Class.Name, history[i]);
}
DataGrid1.DataSource = table;
DataGrid1.DataBind();
InformationsquelleAutor user229775 | 2014-06-27