Gridview上的DataBind和DataSource

时间:2014-07-11 18:14:24

标签: c# asp.net gridview

之前我已经完成了gridviews,我从数据安全阅读器绑定所有SQL数据或指定列名并在javascript级别绑定。这有点不同,我对如何进行感到有点困惑。

我有一个处理所有SQL数据查询的业务类。

调用此类以获取LIST。此列表包含集合和子集合。

var _InfoList = BusinessObjectClass.Get(_CriteriaKey);

我可以这样访问列表: -

Txtbox1.Text = _InfoList.ID#.ToString();

现在我尝试将LIST中的一个集合绑定到gridview。: -

C#:-

gvwMembers.DataSource = _InfoList.Members;
gvwMembers.DataBind();

会员是集合......

但是这种语法不会给gridview添加任何东西...... gridview是空的。

第二种方法: -

我也尝试过这样的事情: -

 List<BusinessObjectClass> Members = new List<BusinessObjectClass>();
 Members = _InfoList.Members;

 gvwVendors.DataSource = Members;
 gvwVendors.DataBind();

但无济于事......这是因为问题在于第二个陈述: -

Members = _InfoList.Members ....这不是有效的任务......任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

在充实注释中的一些细节之后,拥有一个没有定义列的简单GridView是完全没问题的,但要确保AutoGenerateColumns不是假的。默认值为true。这将根据绑定对象的每个属性为您创建一列。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true">
</asp:GridView>

为了选择要显示的属性,请在<Columns>部分中定义它们。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Property1" HeaderText="Property1" />
        <asp:TemplateField HeaderText="Property2">
            <ItemTemplate>
                <asp:Label ID="lblProperty2" runat="server" Text='<%# Eval("Property2") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>