如何使用eval()访问数据集from.cs到.aspx

时间:2014-02-18 11:20:26

标签: c# asp.net

我正在以编程方式编写Gridview。 我在部件(.cs)后面的代码中有数据集,当我试图使用Eval()访问.aspx页面中的数据集时出现“Error Creating Control”错误。

使用Eval()是正确的方法吗?

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label ID="lblGridTier" runat="server" Text='<%#Eval(dt.Tables[0].Columns["Tier"])%>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

3 个答案:

答案 0 :(得分:2)

如果你在后面的代码中做了类似的事情来绑定GridView(你实际上应该做这样的事情):

DateSet ds = ...
GridView1.DataSource = ds;
GridView1.DataBind();

然后使用eval的正确方法是给它只显示你想要显示的列的名称。

Text='<%#Eval("Tier")%>'

答案 1 :(得分:0)

好的请注意首先渲染html,然后调用你的代码隐藏文件。现在,当呈现HTML时,数据集为空(尚未创建)数据集为空,因此不会创建控件并抛出异常。您可以在Page_Load上使用此工作,您可以设置label的text属性,或者如果dataset为null则检查此处,然后不使用Eval分配值。希望它会有所帮助。

答案 2 :(得分:0)

Eval函数直接从所选网格绑定的数据源表中计算字段。几个例子如下:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label ID="lblSomeField" runat="server" Text='<%# Eval("field1")%>'></asp:Label>
        <asp:Image ID="lblImageLink" runat="server" ImageUrl='<%# Eval("imagefield", "http://somelink.com/images/{0}")%>' />
        <asp:HyperLink ID="lblMember" runat="server" NavigateUrl='<%# "/member.aspx?id=" + Eval("id") %>' Text='<%# Eval("membername") %>'></asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>