0

コードを介して列を生成するグリッド ビューと、aspx の ItemTemplate フィールドがあります。テンプレート フィールドをクリアせずに、コードから生成された列をクリアするにはどうすればよいですか?

私の前の記事のコード

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);
}
}

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>
4

1 に答える 1

0

1)別のデータソースに完全に再バインドしてみることができます。すべてのカスタムフィールドを返すものと、IDのみを返すもの

2)より簡単な方法は、次のように列を非表示にすることです。YourGridView.Columns[0].Visible = false;

于 2012-08-01T08:05:13.270 に答える