2

リピーターがあり、辞書にバインドされています。HyperLink にアクセスできますが、表示できません。私はこのコードを持っています:

<%# DataBinder.Eval((System.Collections.Generic.KeyValuePair<string, HyperLink>)Container.DataItem, "Value.NavigateUrl") %>

これValue.NavigateUrlは、そのプロパティにアクセスできるかどうかを確認するためのテストでした。アクセスできます。出力は、リンク先のハイパーリンクの URL です。「テキスト」も試しましたが、うまくいきました。これは、ハイパーリンクとして認識され、1 つとしてアクセスできることを意味しますが、1 つとしてレンダリングしたいと考えています。これどうやってするの?

4

2 に答える 2

1

もっと洗練された解決策があるかもしれませんが、これが私が思いついたものRenderControlで、ハイパーリンク コントロールのメソッドを呼び出す保護された関数です。

あなたのコードビハインドで:

using System.IO;
...

protected string RenderLink(object h)
{
  StringWriter sw = new StringWriter();
  HtmlTextWriter htmlWriter = new HtmlTextWriter(sw);
  HyperLink link = (HyperLink)h;
  link.RenderControl(htmlWriter);
  return sw.ToString();
}

次に、リピーターからその関数を呼び出します。

<%# RenderLink(DataBinder.Eval((System.Collections.Generic.KeyValuePair<string, HyperLink>)Container.DataItem, "Value")) %>
于 2010-02-25T02:37:04.917 に答える
0

リピーターの LITERAL コントロールに配置してみませんか... これでうまくいきます。

于 2010-02-25T02:20:41.130 に答える