2011-09-12 15 views
4

ナビゲーションURLをグリッドビュー内のハイパーリンクに設定しようとしています。ナビゲーションURLをハイパーリンクに動的に設定する

iはバックエンドのC#コードでリテラルを使用してgridview内にテーブルを作成しています。誰もがアイデアを持っている場合、コードは今、私はこのコードの中navidationを設定したい

Literal.Text += "<asp:HyperLink ID='hlContact' runat='server' NavigateUrl='#'>Contact </asp:HyperLink>"; 

GridviewRowDataBound(オブジェクト送信者、GridViewRowEventArgs E)内のように見える

それが役に立つでしょう

ありがとう

+0

これは、実際にコントロールを作成してviewstateに追加するのではなく、ページ上にテキスト "

答えて

1

、それは正しくasp hyperlinkを拾うことはありません。しかし、通常の“a”タグを使用すると、リダイレクトパスが正しく取得されます。

literal.Text += "a ID='linkcontact' runat='server' href='" + "www.website./pagename.aspx?ID=" + id + "'>contact</a>"; 
5

リテラルに追加しようとするのではなく、HyperLinkコントロールを作成してください:

HyperLink lnk = new HyperLink(); 
lnk.Text = "Hello World!"; 
lnk.NavigateUrl = "~/somefolder/somepage.aspx"; 

e.Row.Cells[0].Controls.Add(lnk); 

あなたのアプローチが働くことができる場合、あなたはこのような何かを試みることができる:

Literal.Text += String.Format("<asp:HyperLink ID=\"hlContact\" runat=\"server\" NavigateUrl=\"{0}\">Contact</asp:HyperLink>", navigationUrl); 

あなたががLiteralコントロールを使用したい場合は、私が代わりにこのような何かをするだろう:

Literal.Text += String.Format("<a href=\"{0}\">Contact</a>", navigationUrl); 
+0

多分私は質問や文脈を誤解していますが、単純に " mikemanne

+0

@mikemanne:それは私の考えだったので、何らかの親コンテナにHyperLinkコントロールを追加するという私の最初の提案です。 –

2

バインドされたフィールドを持つGridViewのHyperLinkフィールドを単にデータバインドするだけの場合は、TemplateFieldを使用できます。ここでは、コードを後ろに追加する手間ではなく、前もってそれを行う例を示します。我々はliteralhtmlコンテンツを書くとき

<asp:TemplateField HeaderText="Contact" SortExpression="LastName, FirstName"> 
    <ItemTemplate> 
     <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# String.Format("~/Page.aspx?ID={0}", Eval("CustID").ToString()) %>'>Contact</asp:HyperLink>) 
    </ItemTemplate> 
</asp:TemplateField> 
0

メニューとサブメニューコードC#を作成します。変数とnavigateurlは次の形です

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal"> 
       <Items>      
        <asp:MenuItem> 
         <asp:MenuItem></asp:MenuItem> 
         <asp:MenuItem></asp:MenuItem> 
        </asp:MenuItem> 

       </Items> 
      </asp:Menu> 

    NavigationMenu.Items[0].Text = "xxxxxx"; name of menu 
    MenuItem menu = NavigationMenu.Items[0]; 
    MenuItem submenu = new MenuItem("xxxxxx"); //name of submenu 
    submenu.NavigateUrl = "~/Main/xxxxx.aspx?id=" + id + ""; 

    MenuItem submenu1 = new MenuItem("xxxxxxx");//name of sumbenu1 
    submenu1.NavigateUrl = "~/Main/xxxxxxx.aspx?id=" + id + ""; 

    menu.ChildItems.Add(submenu); 
    menu.ChildItems.Add(submenu1); 
+1

あなたは別の方向に行ったようです!これはナビゲーション付きのメニューを作成することではありません。これは 'grid-view'カラム内のリンク+データで、' literal'にデータが追加されています。今日あなたがサイトに参加したようです。あなたの貢献を感謝します。しかし、受け入れられた答えがない質問を見てください。答えが受け入れられれば、答えの左側にチェックマークが表示されます! –

関連する問題