Repeater ASP.net中的NavigateUrl

4

我有一个数据库中的表:

NOTICE(NUM,TITLE,CONTENT)

我在ASP中使用Repeater控件展示数据库中的所有通知,例如:

+----------+------------+|
|title1        (readmore)|
|
|title2        (readmore)|
|
|title3        (readmore)|
......
+------------------------+

我想要的是:我阅读了一个标题,然后点击了“readmore”,新页面将打开(显示详细通知),其中包含该通知的“内容”。如何在不显示它的情况下分配通知的num以定义下一页的通知?
我只是将标题分配给Label ID =“TITLE”的Text属性,因为我想显示每个通知的标题。
我想在这个页面中显示的所有信息是:标题和readmore(链接到下一页)。所以我不知道如何分配num。
我的asp页面:notice.asp
<asp:Repeater ID="RepDetails" runat="server" >
<HeaderTemplate>
<table style="  width:565px" cellpadding="0" class="borber">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="Title" runat="server" Text='<%#Eval("TITLE") %>'  /> 
</td>
<td>
    <asp:HyperLink ID="HyperLink1" runat="server" > (readmord)</asp:HyperLink>
</td>
</tr>    
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater> 

我的C#代码:notice.asp.cs

 private void BindRepeaterData()
    {
        string sql = "select num,title from NOTICE";
        DataTable ds = l.EXECUTEQUERYSQL(sql);
        RepDetails.DataSource = ds;
        RepDetails.DataBind();

    }

下一页是:detailnotice.asp.cs。
private void GetNotice()
    {
        string sql = "select * from NOTICE where num=" ;// num= the num of notice I choose in notice.asp page.
    }

我该如何在标签中赋值而不显示它?我应该使用 Label 控件的哪个属性或其他控件? 希望你明白我的意思,如果你不明白,请问一下。
2个回答

3
基本上与Sain相同,但是使用NavigateURL。
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("NUM","~/detailpage.aspx?id={0}") %>' > (readmord)</asp:HyperLink>

2

你可以使用锚标签代替超链接按钮。你可以在查询字符串中传递数字到详细页面。

<a href='detailpage.aspx?id=<%#Eval("NUM") %>'> (readmord)</a>

在详细页面中,您可以获取查询字符串的值并从数据库中提取详细信息。

   int myKey = 0;
    if (!string.IsNullOrEmpty(Request.QueryString["id"]))
    {
        myKey = int.Parse(Request.QueryString["id"]);
        // Use myKey to retrieve record from database
    }

谢谢你,在详细页面中,我该如何接收ID,我的意思是语法。因为我已经用PHP代码完成了它,而我对ASP.net还很陌生。 - vyclarks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接