3

ItemIDからquerystringの しか取得していませんがgridview、 にリンクを表示したいのですquerystring

gridviewプロパティ:

  • DataNavigateUrlFields: ItemID, Link.
  • DataNavigateUrlFormatString: OpenLink.aspx?itemid={0}&link={1}.

ここ ItemIDpkと自動生成されたItemテーブルのフィールドがあります。データがデータベースに保存されるたびにアップグレードされます。

Link列は、アイテム テーブルからのそのデータの http リンクと、そのハイパーリンク テンプレートでありgridview、データのタイトルが に表示されますhyperlinkfield

私の主な目的は、の値を取得し、そこItemIDからリンクして、querystring別の .aspx ページに表示できるようにすることです。

4

2 に答える 2

2

簡単なデモを行い、説明したことを試しました。どうやらHyperLinkは、指定されたリンクをDataNavigateUrlFieldsからエンコードできません。そこで、templateFieldカスタム メソッドを作成しました。

// code behind
public string createUrl(object itemName, object link)
{
     return string.Format("showItem.aspx?itemID={0}&link={1}",
         itemName.ToString(),
         HttpUtility.UrlEncode(link.ToString()));
}

と組み合わせて...

ASPX ページ デザイン ビュー

結果は...

ASPX ページの Chrome ビュー

ご覧のとおり、 DataNavigateUrlXXXを使用するだけで、説明した動作が発生します。数行上に私のコードが表示されます。

とにかく、あらゆる種類の queryString 操作に注意し、指定されたqueryString値を showItem.aspx で確認してください。あなたはqueryStringsまたはこの例を保護することを見ているかもしれません

于 2012-06-20T09:08:30.867 に答える
0

私は自分のプロジェクトの1つで同様のことをしました。コードは以下です。お役に立てば幸いです。

<asp:TemplateField>
  <ItemTemplate>
    <asp:HyperLink ID="lnkViewRequest" runat="server" NavigateUrl='<%# "./ViewRequest.aspx?Database=" & Request.QueryString("Database") & "&RequestNumber=" & Eval("Request") %>' Text="View"></asp:HyperLink>
  </ItemTemplate>
</asp:TemplateField>

ここでは、QueryString から渡された値を使用し、次に gridrow から値を追加して、発信 URL に 2 つ目のクエリ文字列を追加しました。

于 2012-06-20T18:32:58.310 に答える