je trouve une grille où les colonnes sont générées dynamiquement par le code [AutoGenerateColumns="false"]
avec un TemplateField
mais aussi je crée une autre TemplateField
de ASPXComment contrôler TemplateField pour
Comment puis-je contrôler l'ordre de ces deux TemplateField
Par exemple, j'ai besoin du TemplateField
qui a été généré à partir du code en premier, puis le TemplateField
généré à partir d'ASPX est le deuxième en tant que nouvelle ligne dans le gridview.
TemplateField templateField = new TemplateField();
TemplateField uid = new TemplateField();
uid.HeaderText = "userid";
uid.ItemTemplate = new AddItemTemplate(ListItemType.Item, "userid");
GridView1.Columns.Add(uid);
for (int i = 0; i < dt.Columns.Count; i++)
{
BoundField boundField = new BoundField();
if (dt.Columns[i].ColumnName.ToString() != "userid")
{
boundField.DataField = dt.Columns[i].ColumnName.ToString();
boundField.HeaderText = dt.Columns[i].ColumnName.ToString();
GridView1.Columns.Add(boundField);
}
}
code ASPX
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<tr>
<td>
<div id="div<%# Eval("userid") %>" >
<asp:GridView ID="GridView2" AllowSorting="true" >
<Columns>
--code--
</Columns>
</asp:GridView>
</div>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Y at-il moyen de contrôler cela?
Je pensais que l'ordre de Feild modèle commence à partir du code ASPX. L'index des champs de gabarit généré dynamiquement démarre après l'affectation de l'index au champ du gabarit dans le code aspx. –