0

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

“Description”列需要从“Literature”表(dataset2)中获取所有内容。所有其他列需要从表“文档”(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 获取所有“名称”列并将其加载到“描述”列,但它还在我的网格中显示一个具有相同信息的“名称”列:(。

出了什么问题,我该怎么做?明白了吗?

我想

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

谢谢 !

4

2 回答 2

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>

希望这可以帮助,

于 2012-06-20T14:40:42.743 回答
0

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

于 2012-06-20T14:47:55.053 回答