我试图在一个页面中显示超链接,当用户点击链接时,页面会导航,但我想获取超链接的名称并在不同的网页中显示为标签。在这里我尝试使用cookie,但cookie只占用数据库的最后一个值可以存储在cookie中的所有值?感谢
String sql1 = "select title,song_id from up_song where Song_type='Indian Pop Album'";
adpt = new SqlDataAdapter(sql1, cn);
ds = new DataSet();
adpt.Fill(ds, "title1");
var last6Uploaded1 = ds.Tables["title1"]
.AsEnumerable()
.OrderByDescending(r=> r.Field<int>("song_id"))
.Take(2);
foreach (DataRow row in last6Uploaded1)
{
int songID = row.Field<int>("song_id");
// you don't need the array of hyperlinks neither
HyperLink hl = new HyperLink();
hl.ID = "hyperlink" + songID;
string title = row.Field<string>("title");
hl.Text = title;
hl.NavigateUrl = "Downloadpage.aspx";
hl.ForeColor = System.Drawing.Color.White;
HttpCookie coo = new HttpCookie("song");
coo["sogtit"] = title;
Response.Cookies.Add(coo);
Panel2.Controls.Add(hl);
Panel2.Controls.Add(new LiteralControl("<br>"));
}
答案 0 :(得分:1)
Cookie可以存储多个值,以下是您可以执行此操作的方法:
string title = row.Field<string>("title");
string song_id = row.Field<int>("song_id").ToString();
HttpCookie coo = new HttpCookie("song");
cookie.Values.Add("songtit", title);
cookie.Values.Add("song_id", song_id);
您将检索目标页面中的值,如下所示:
string title = response.Cookies["song"]["songtit"];
string song_id = response.Cookies["song"]["song_id"];
在网页之间传递数据的另一种常用方法是通过从目标网页中的QueryString
获取的请求参数。像这样设置你的网址:
hl.NavigateUrl = "Downloadpage.aspx?name=" + title;
在Downloadpage.aspx
中的Page_Load
事件处理程序集:
yourLabel.Text = Request.QueryString["name"];
其中yourLabel
是您要为其设置文字的标签名称。
您可以通过以下请求传递多个参数:
hl.NavigateUrl = "Downloadpage.aspx?name=" + title + "&otherParam=" + otherParam;
在目标网页中,您可以通过Request.QueryString["otherParam"]
获取第二个参数的值。