从sql源加载GridView

时间:2012-06-20 13:52:50

标签: c# asp.net sql data-binding gridview

我正在尝试加载我的gridview(我是新手)并且我有点迷失了。我想要做的是创建一个名为“Description”的列标题,并从我的表DocumentTypes(dataset1)的sql数据集中获取所有其他列标题。

“描述”列需要从表格“文献”(dataset2)中获取所有内容。 所有其他列都需要从“Documents”(dataset3)表中获取所有内容(如果有的话)

这是我被困的地方。 这是我手动创建我的第一个列标题。我希望此列包含来自dataset2的所有信息。

BoundField m_bfBoundField = new BoundField();
m_bfBoundField.HeaderText = "Description";
m_bfBoundField.DataField = "Name";
gridView.Columns.Add(m_bfBoundField);

然后我做

gridView.DataSource = dataset2;
gridView.DataBind();

我尝试从datasource1获取标题但是现在没有放入.DataField(我的关系需要一个吗?)

实际上,这是从datasource2获取所有“Name”列并将其加载到“Description”列,但它也在我的网格中显示一个“Name”列,其中包含相同的信息:(。

出了什么问题,我该怎么做?那是清楚的吗?

我想

-------------------------------------------------------------------------------------------------------
| Description (can be called as I want) | Manuals (data from dataset1) | Catalog (data from dataset1) |
-------------------------------------------------------------------------------------------------------
| DescripionA (data from dataset2)      | Yes (data from dataset3)     | No (data from dataset3)      |
| DescripionB (data from dataset2)      | No (data from dataset3)      | Yes(data from dataset3)      |
-------------------------------------------------------------------------------------------------------

谢谢!

2 个答案:

答案 0 :(得分:0)

这可能是一个痛苦的屁股,但我知道如何做到这一点的唯一方法是在gridview中设置它

AutoGenerateColumns="False"

然后为所有列创建数据绑定项。如果您希望列标题与数据集列名相同,则不要在新的boundField()中设置HeaderText;

你可以直接在.aspx页面上这样做

<asp:GridView ID="Gridview1" runat="server" CellPadding="4" 
    ForeColor="#333333" GridLines="None" AutoGenerateColumns="False">
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    <Columns>
        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="NONOPSgridviewDelete" runat="server" CausesValidation="false" 
                    CommandName="Delete" Text="Delete"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
         <!-- These are the boundedfields of the rest of your dataset -->
         <asp:BoundField DataField="Firstname"/>
        <asp:BoundField DataField="Lastname" />
    </Columns>
</asp:GridView>

希望这有帮助,

答案 1 :(得分:0)

您可以尝试在数据源中添加新列吗? 或者,您可以将数据源复制到新数据表和新数据表中添加新列。 之后将数据表作为数据源绑定到您的网格 编辑数据源的好方法是,如果您对网格描述中的数据进行重新排序,则可能不是您喜欢的数据,如果它们没有堆叠在数据源中。