将数据从一个页面显示到另一个页面

时间:2012-08-11 18:58:35

标签: asp.net

我有一个页面(default.aspx),其中一个Repeater从我的数据库中获取数据,这是Repeater的布局:

的Default.aspx:

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Id","~/fullpost.aspx?Id={0}") %>'><asp:Literal ID="LitTitle" runat="server" Text='<%# Eval("Title") %>'></asp:Literal></asp:HyperLink>
                            <br />
                            <span class="textSum">
                                <asp:Literal ID="LitSummary" runat="server" Text='<%# Eval("Summary") %>'></asp:Literal></span>
                            <span class="dateTime">
                                <asp:Literal ID="Literal1" runat="server" Text='<%# Eval("CreateDateTime") %>'></asp:Literal></span>

现在注意超链接,它指向 fullpost.aspx ,在这个页面上我只想显示我点击的那个项目(URL指向右边,它转到 fullpost .aspx?Id = IdNumber ),所以我尝试了以下内容:

fullpost.aspx:

<asp:Literal ID="Literal1" runat="server" Text='<%# Eval("Title") %>'></asp:Literal>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:orangefreshConnectionString1 %>" 
            SelectCommand="SELECT [Id], [Title], [Summary], [Body], [CreateDateTime] FROM [Post] WHERE ([Id] = @Id)">
            <SelectParameters>
                <asp:QueryStringParameter Name="Id" QueryStringField="Id" Type="Int32" />
            </SelectParameters>
        </asp:SqlDataSource>

但我的文字并没有显示我想要的标题,没有任何显示。我到底错在了什么?


添加数据绑定控件后:

 <asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1">
        <asp:Literal runat="server" Text='<%# Eval("Title") %>'></asp:Literal>
    </asp:FormView>

我现在得到: 分析器错误消息:类型“System.Web.UI.WebControls.FormView”没有名为“Literal”的公共属性。

1 个答案:

答案 0 :(得分:1)

fullpost.aspx上的

Literal1不在data bound control内,无法从SqlDataSource获取数据。把它放在类似于FormView的内容中,并将其数据源设置为SqlDataSource1

编辑示例FormView

FormView包含一个名为<ItemTemplate>的标记,其中包含您要显示的控件。注意:如果您使用类似Visual Web Developer的IDE,它将自动为您创建正确的标记结构。

<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1">
    <ItemTemplate>
        <asp:Literal runat="server" Text='<%# Eval("Title") %>' />
    </ItemTemplate>
</asp:FormView>