Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么Asp:GridView中存在不需要的重复列和额外列?_C#_Asp.net_Visual Studio_Gridview - Fatal编程技术网

C# 为什么Asp:GridView中存在不需要的重复列和额外列?

C# 为什么Asp:GridView中存在不需要的重复列和额外列?,c#,asp.net,visual-studio,gridview,C#,Asp.net,Visual Studio,Gridview,我试图使用ASP:GridView控件在我的网页上显示一些详细信息。因此,我添加了需要显示的列。但是,每个列在GridView中显示两次(图)。 按后端代码排列如下: objVendor = client.GetAllVenorsForPCMS(); if (objVendor.Count > 0) { gvVendorsDetails.DataSource = objVendor; gvVendorsD

我试图使用ASP:GridView控件在我的网页上显示一些详细信息。因此,我添加了需要显示的列。但是,每个列在GridView中显示两次(图)。

按后端代码排列如下:

objVendor = client.GetAllVenorsForPCMS();

        if (objVendor.Count > 0)
        {

            gvVendorsDetails.DataSource = objVendor;
            gvVendorsDetails.DataBind();

        }

        else
        {
            gvVendorsDetails.DataSource = null;
            gvVendorsDetails.DataBind();
        }
和aspx代码如下:

                <div align="center" style="border: 1px solid;">
                    <asp:GridView ID="gvVendorsDetails" runat="server" CssClass="mGrid">
                        <Columns>
                            <asp:BoundField HeaderText="Vendor ID" DataField="VendorID" Visible="false" />
                            <asp:BoundField HeaderText="Vendor Name" DataField="VendorName" Visible="true" />
                            <asp:BoundField HeaderText="Vendor Description" DataField="VendorDescription" Visible="true" />
                            <asp:BoundField HeaderText="Address" DataField="Address" Visible="true" />
                            <asp:BoundField HeaderText="City" DataField="City" Visible="true" />
                            <asp:BoundField HeaderText="State" DataField="State" Visible="true" />
                            <asp:BoundField HeaderText="Country" DataField="Country" Visible="true" />
                            <asp:BoundField HeaderText="Contact Person" DataField="ContactPerson" Visible="true" />
                            <asp:BoundField HeaderText="Contact No" DataField="ContactNo" Visible="true" />
                            <asp:BoundField HeaderText="ZIP Code" DataField="ZIPCode" Visible="true" />
                        </Columns>
                    </asp:GridView>
                </div>


我只添加了一次列,但是为什么结果列会显示两次

这样做的一个常见原因是,您还将属性设置为true(这是默认设置)。 通过将属性设置为false,将生成的列限制为您明确指定的列

i、 e.这样解决这个问题:

<asp:GridView ID="gvVendorsDetails" runat="server" 
              CssClass="mGrid" AutoGenerateColumns="False">
     <Columns> ...

...

是的,我确实从数据库中获取了这些列,但在gridview中,它不是首先尝试将来自数据库的列映射到gridview中设置的列吗??