0

まあ、たまたま私はasp.netの初心者で、ソースがプログラムで宣言されているグリッドを作成しようとしています。

その過程で、 FieldsColumnsの 2 つのタグに出会いました。どう違うのか誰か教えてください。

編集: MSDNの例をいくつか試してみましたが、私が言えることは、それらは同じ意味で使用できるように思われることです (ただし、それは真実ではないと感じています!)。

これをチェックしてください:

    <asp:GridView ID="GridView1" runat="server" 
AutoGenerateColumns="False" DataKeyNames="EmployeeID" DataSourceID="ObjectDataSource1">

    <Columns>

        <asp:BoundField DataField="LastName" HeaderText="LastName"

          SortExpression="LastName" />

        <asp:BoundField DataField="FirstName" HeaderText="FirstName"

          SortExpression="FirstName" />

        <asp:BoundField DataField="Title" HeaderText="Title"

          SortExpression="Title" />

        <asp:BoundField DataField="HireDate" HeaderText="HireDate"

          SortExpression="HireDate" />

    </Columns>

</asp:GridView>

そして、次のとおりです。

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateRows="False" DataKeyNames="ProductID"
DataSourceID="ObjectDataSource1" EnableViewState="False">

    <Fields>

        <asp:BoundField DataField="ProductName" HeaderText="Product"

          SortExpression="ProductName" />

        <asp:BoundField DataField="CategoryName" 
HeaderText="Category"

          ReadOnly="True" SortExpression="CategoryName" />

        <asp:BoundField DataField="SupplierName" 
HeaderText="Supplier"

          ReadOnly="True" SortExpression="SupplierName" />

        <asp:BoundField DataField="QuantityPerUnit" 

          HeaderText="Qty/Unit" SortExpression="QuantityPerUnit" />

        <asp:BoundField DataField="UnitPrice" 
DataFormatString="{0:c}"

          HeaderText="Price"

            HtmlEncode="False" SortExpression="UnitPrice" />

    </Fields>

</asp:GridView>

似ているように見えますか、それとも私だけですか??!

助けてくれてありがとう。

4

3 に答える 3

2

Columnsは、フィールドを囲むタグです。

  • TemplateFields必要なコントロールを使用するか、
  • BoundFields自動的に作成される

そのColumnsため、GridView でフィールドのリストを囲みます。

<Columns>
    <asp:Boundfield datafield="StudentID"
        readonly="true"      
        headertext="Student ID"/>
    <asp:TemplateField HeaderText="Student" HeaderStyle-HorizontalAlign="Left">
       <ItemTemplate>
            <asp:label runat="server" Font-Bold="true" ID="LblStudent" Text='<%# Bind("Student") %>'></asp:label>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Inner Grid">
       <ItemTemplate>
           <asp:GridView ID="Grid2" AutoGenerateColumns="false" runat="server" GridLines="None" Width="300">
                <RowStyle  CssClass="GridViewRowStyle" />
                <AlternatingRowStyle CssClass="GridViewAlternatingRowStyle" />
                <HeaderStyle CssClass="GridViewHeaderStyle" />
                <SelectedRowStyle BackColor="Aqua" />
                <Columns>
                    <asp:TemplateField HeaderText="Student" HeaderStyle-HorizontalAlign="Left">
                       <ItemTemplate>
                            <asp:label runat="server" Font-Bold="true" ID="LblStudent" Text='<%# Bind("Student") %>'></asp:label>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

ご覧のとおり、TemplateField別の入れ子になった GridView を含めることもできます。

于 2012-10-17T09:48:51.353 に答える
1

私は盲目ですか、それともワットですか!

この質問を投稿した後、ドローイングボードに戻ったところ、asp:GridView に Fields タグがありませんよね?!

これが本当の人かどうか教えてください(そして私が愚かであることを証明してください!)

于 2012-10-17T10:04:43.333 に答える