0

あるページにハイパーリンクを表示しようとしていますが、ユーザーがリンクをクリックするとページがナビゲートされますが、ハイパーリンクの名前を取得して、別の Web ページにラベルとして表示したいと考えています。ここで私はクッキーを試していますが、クッキーはデータベースの最後の値のみを取得し、すべての値をクッキーに保存できますか?? ありがとう

 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>"));
     }
4

1 に答える 1

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"];

Web ページ間でデータを渡すもう 1 つの一般的な方法はQueryString、宛先ページからフェッチされる要求パラメーターを使用することです。URL を次のように設定します。

hl.NavigateUrl = "Downloadpage.aspx?name=" + title;

そのイベントハンドラーセットDownloadpage.aspxで:Page_Load

yourLabel.Text = Request.QueryString["name"];

ここyourLabelで、テキストを設定するラベルの名前です。

次のように、リクエストを介して複数のパラメーターを渡すことができます。

hl.NavigateUrl = "Downloadpage.aspx?name=" + title + "&otherParam=" + otherParam;

宛先ページでは、 を介して 2 番目のパラメーターの値を取得できますRequest.QueryString["otherParam"]

于 2013-02-16T12:39:33.363 に答える