0

これは GridView コントロールに関するものです。列を手動で (コーディングにより) 指定したものを作成しましたが、プロジェクトを実行すると、コードで指定されたよりも多くの列が取得されます。

コードは次のとおりです。

<asp:GridView ID="GridView1" runat="server" DataKeyNames="cid" 
        onrowcancelingedit="GridView1_RowCancelingEdit" 
        onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing" 
        onrowupdating="GridView1_RowUpdating">
    <Columns>
        <asp:BoundField DataField="name" HeaderText="Category name" 
            SortExpression="name" />

        <asp:BoundField DataField="description" HeaderText="Category description" 
            SortExpression="description" />

        <asp:HyperLinkField DataNavigateUrlFields="cid" 
            DataNavigateUrlFormatString="AdminCategories.aspx?CategID={0}" 
            HeaderText="See categories" Text="See Categories" />

        <asp:CommandField ShowEditButton="True" EditText="Edit" HeaderText="Edit Categories"/>

        <asp:ButtonField CommandName="Delete" Text="Delete" HeaderText="Delete Categories"/>
    </Columns>
</asp:GridView>

その結果、プロジェクトを実行すると、GridView に次のヘッダーが表示されます。

カテゴリー名 | カテゴリの説明 | カテゴリーを見る | カテゴリを編集 | カテゴリを削除 | 名前 | 説明

全部で7列。ただし、コードを確認すると、コードには最初の 5 列しか含まれていません。では、最後の 2 つの列が表示されるのはなぜですか?どうすれば削除できますか?

ありがとうございました!

アンナ

4

1 に答える 1

2

最後の 2 つの列が自動的に生成されていないため、gridview の AutoGenerateColumns プロパティを false に設定する必要があります。このようにコードを書き直してください:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="cid"   
    onrowcancelingedit="GridView1_RowCancelingEdit"   
    onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"   
    onrowupdating="GridView1_RowUpdating">  
<Columns>  
    <asp:BoundField DataField="name" HeaderText="Category name"   
        SortExpression="name" />  

    <asp:BoundField DataField="description" HeaderText="Category description"   
        SortExpression="description" />  

    <asp:HyperLinkField DataNavigateUrlFields="cid"   
        DataNavigateUrlFormatString="AdminCategories.aspx?CategID={0}"   
        HeaderText="See categories" Text="See Categories" />  

    <asp:CommandField ShowEditButton="True" EditText="Edit" HeaderText="Edit Categories"/>  

    <asp:ButtonField CommandName="Delete" Text="Delete" HeaderText="Delete Categories"/>  
</Columns>  

于 2012-06-10T11:00:22.177 に答える