0

グリッドビューのハイパーリンクを介してデータベース列から別のページにデータを渡したいのですが、渡したいデータは単なるテキストのロードです。これは私が持っているコードです

<asp:HyperLinkField DataTextField="FullText" 
        DataTextFormatString="View Text" NavigateUrl="~/Abstract.aspx" 
        Target="_blank" />

これは、正しいページを開く限り機能するように見えますが、新しいページでテキストを表示する方法がわかりません。ほとんどのヘルプ トピックでは、データを新しいグリッド ビューに渡す方法が説明されていますが、ページまたはボックス内のデータを表示します。

ありがとう

4

4 に答える 4

4

私の理解が正しければ、クエリ文字列として渡されたテキストを新しいページに表示したいだけです。これが正しければ、クエリ文字列を読み取ってラベルに表示するだけです。

これを機能させるには、グリッド内のリンクにクエリ文字列を指定する必要があります。リンクは次のようになります。

~/Abstract.aspx?d=your+text

あなたのデータグリッドで:

    <asp:TemplateColumn>
        <ItemTemplate>
            <asp:HyperLink
                NavigateUrl='<%# "~/Abstract.aspx?d=" + HttpUtility.UrlEncode(DataBinder.Eval(Container, "DataItem.Id").ToString()) %>' 
                runat="server"
                Text="Product" />
        </ItemTemplate>
    </asp:TemplateColumn>

ターゲット ページには、次のようなものがあります。

string text = string.Empty;
if (this.Request.QueryString["d"] == null)
   text = "Not found";
else
   text = Server.UrlDecode(this.Request.QueryString["d"]);

// encode the text to avoid XSS (cross-site scripting)
this.myLabel.Text = Server.HtmlEncode(text);
于 2012-06-14T19:27:37.257 に答える
2

グリッド上

<asp:HyperLinkField DataTextField="FullText" 
    DataTextFormatString="View Text" 
    NavigateUrl='<%# "~/Abstract.aspx?ft=" +  System.Web.HttpUtility.UrlEncode(Eval("FullText").ToString() %>'
    Target="_blank" />

あなたが持っているパラメータを読みたいページで

string fullText = Request.QueryString["ft"];
if (string.IsNullOrEmpty(fullText))
{
    fullText = HttpUtility.UrlDecode(fullText);
}
于 2012-06-14T19:31:14.680 に答える
0

クエリ文字列を介してキー パラメーターを渡して、表示するデータを取得することができます。

それがあなたが望むものではない場合は、質問をより説明的にしてください.

于 2012-06-14T19:29:33.887 に答える
0

セッションまたはクエリ文字列 ( ) で ID を渡すことができますAbstract.aspx?textid=1。ページ読み込みイベントでこの ID を読み取り、データベースからデータを取得して表示します。

于 2012-06-14T19:30:00.470 に答える