2013-01-10 17 views
6

私はgridviewの中にHyperLinkFieldを使用しています。別ののURL + IDにリンクしたいと思います。URLビュー内のHyperLinkFieldでのグリッドビュー

<div id="searchResults" runat="server"> 
    <asp:GridView ID="gvSearchResult" runat="server" AutoGenerateColumns = "false" 
    CaptionAlign="NotSet" CellPadding="5"> 
    <Columns> 
     <asp:TemplateField HeaderText="Användare"> 
      <ItemTemplate> 
       <%# Eval("UName")%> 
       <br /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:HyperLinkField DataNavigateUrlFields="UName" 
          DataNavigateUrlFormatString='/MemberPages/profile.aspx?ID=<%# Eval("PID") %>' 
          DataTextField="UName" 
          HeaderText="Besök sida" 
          SortExpression="Name" 
          ItemStyle-Width="100px" 
          ItemStyle-Wrap="true" /> 
    </Columns> 
    </asp:GridView> 
</div> 

gridviewdatasourcedatabindを使用しています。それが不満だ:

DataNavigateUrlFormatString="/MemberPages/profile.aspx?ID=<%# Eval("PID") %>" 

私はPIDのようなもの、私はdoublecheckedきがあると確信している、どこ<%# Eval("PID") %>を使用するかわかりません。

私はNavigateUrl="/MemberPages/profile.aspx?ID=<%# Eval("PID") %>"を使用している場合は、私も同じエラーが表示されます。私はどうなる

Literal content ('<asp:HyperLinkField DataNavigateUrlFields="UName" 
           DataNavigateUrlFormatString="/MemberPages/profile.aspx?ID=') is not allowed within a 'System.Web.UI.WebControls.DataControlFieldCollection'. 

答えて

9

あなたが使用する必要がある場合は、「属性値の内側に 『あなたが使用する必要がある場合、区切り文字

Attribute='Some value with " symbol' 

として』、属性値内で使用し、使用して」

Attribute="Some value with ' symbol" 

はまた、あなたの列定義

を変更
<asp:HyperLinkField DataNavigateUrlFields="PID" 
        DataNavigateUrlFormatString="/MemberPages/profile.aspx?ID={0}" 
        DataTextField="UName" 
        HeaderText="Besök sida" 
        SortExpression="Name" 
        ItemStyle-Width="100px" 
        ItemStyle-Wrap="true" /> 

DataNavigateUrlFormatString属性では、DataNavigaで指定されたデータ列を使用します。 teUrlFields(整形はString.Formatの方法と同様です)。

+0

データバインディングタグgav me:データバインディング式のみがサポートされていますDataBindingイベントを持つオブジェクトでSystem.Web.UI.WebControls.HyperLinkField DataBindingイベントを持っていません。 – MrProgram

+0

ありがとう!あなたは私の一日を作った。今日12時間勉強していて、ついにベッドに行くことができます:)ありがとう! – MrProgram

+0

、{0}は何をしているのか教えていただけますか? – MrProgram

0

最初の事は

DataNavigateUrlFormatString = "/ MemberPages/profile.aspx以下の行を置き換えているID?以下の行で= <%位評価( "PID")%>」

DataNavigateUrlFormatString = '/ MemberPages/profile.aspx?ID = <%#エバール(「PID」)%>」

通知は、私は、単一引用符と最初と最後で二重引用符を置き換えます。

+0

wops。それを今見た。それを変更して(質問を編集しましたが)、私はまだ正しいURLを取得していません。 '/MemberPages/profile.aspx?ID=<%# Eval( "PID")%>'は '/MemberPages/profile.aspx?ID=10'である必要があります。 – MrProgram

0

受け入れ答えは仕事をしながら。私の場合、私は別のコントロールを使用する必要があった。この例では、EvalにURL文字列を使用できます。

<asp:LinkButton PostBackUrl='<%#"~/config.aspx?Id=" + Eval("Id") %>' runat="server">Configuration</asp:LinkButton> 
関連する問題