在Repeater ASP.net上NavigateUrl

时间:2013-09-16 06:28:03

标签: c# asp.net repeater

我在DB中有一个表:

NOTICE(NUM,TITLE,CONTENT)

我在ASP中使用Repeater Control来显示DB中的所有通知,例如:

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

我想要的只是:我读了一个"title"然后我点击了(readmore),新页面将打开(显示详细信息通知),其中包含该通知的“内容”。如何在不显示通知的情况下分配num通知以在下一页中定义通知?

我只是将标题分配给Label ID="TITLE"的属性文本,因为我想显示每个通知的标题。

我要在此页面中显示的所有信息均为:titlereadmore(链接到下一页)。所以我不知道如何分配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 Control或我应该使用其他Control的哪些属性?

希望你明白我说的话。如果你不这样做,请问?

2 个答案:

答案 0 :(得分:3)

与Sain基本相同,但使用NavigateURL

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("NUM","~/detailpage.aspx?id={0}") %>' > (readmord)</asp:HyperLink>

答案 1 :(得分:2)

嗨,您可以使用锚标记代替超链接按钮。您可以将查询字符串中的num传递给详细信息页面。

<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
    }