我需要有关Repeater Control& amp ;;的帮助数据绑定。
我创建了一个页面,使用Repeater Control从数据库中显示文章(包含标题和帖子)。
表结构是:
ID 标题 交
aspx代码是:
<ItemTemplate>
<%#Eval("title") %>
<asp:Label ID="lblSubject" runat="server" Text='<%#Eval("post") %>' Font-Bold="true"/>
</ItemTemplate>
<FooterTemplate>
</article>
</FooterTemplate>
</asp:Repeater>
C#代码是:
string qw = "Select title, post from articles";
RepDetails.DataSource = dbc.ConnectDataBaseReturnDS(qw);
RepDetails.DataBind();
使用此代码我可以在页面中显示文章,但我想要的是,当有人点击帖子的标题时,会打开一个新页面,其中包含该特定帖子。 (我们在普通网站/博客中看到的功能相同。)
我真的无法弄清楚如何做到这一点。我正在考虑使用查询字符串或其他东西,但没有任何想法。
请帮助我,我是ASP.Net的新手并原谅我,如果我犯了任何错误,因为这是我第一次在这里发帖。
答案 0 :(得分:0)
欢迎使用StackOverflow!
将ItemTemplate更改为使用ASP.NET HyperLink,如下所示:
<ItemTemplate>
<HyperLinkid="hlnkTitle" Text='<%#Eval("title") %>' NavigateUrl="Details.aspx?ID=<%#Eval("ID") %>" />
<asp:Label ID="lblSubject" runat="server" Text='<%#Eval("post") %>' Font-Bold="true"/>
</ItemTemplate>
注意:我假设显示帖子的页面名为Details.aspx
。此外,我建议将用户带到详细信息页面,而不是打开一个新窗口,因为这是通常的方式。如果您真的想打开一个新窗口,请告诉我,我会发布该代码。
现在,在Details.aspx
上,您将捕获要显示的帖子的ID,如下所示:
void Page_Load(object sender, System.EventArgs e) {
if(!this.IsPostBack) {
int idPost = Int32.Parse(this.Request.QueryString["ID"];
//PERFORM YOUR SQL USING THE ID HERE
//THEN YOU CAN BIND THE VALUES TO ANY SERVER CONTROLS YOU WANT
}
}
如果有什么不清楚,请告诉我。