GridView中的超链接有一列

时间:2013-05-14 23:11:01

标签: c# asp.net webforms

我的Gridview中有一列,其中包含带{URL的TemplateField。现在我的问题出在Text="Details"而不是Details我想要P_D_Name

这是我的代码:

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource1">
     <Columns>
         <asp:BoundField DataField="P_D_Name" HeaderText="P_D_Name" 
                SortExpression="P_D_Name" Visible="False" />
         <asp:TemplateField>
             <ItemTemplate>
                 <asp:HyperLink ID="HyperLink1" runat="server" Text="Details" Target="_blank" NavigateUrl='<%# "MYURL" + Eval("P_D_Name")%>'></asp:HyperLink>
             </ItemTemplate>
         </asp:TemplateField>
     </Columns>
 </asp:GridView>

3 个答案:

答案 0 :(得分:2)

用eval表达式替换文本,如下所示:

Text =“&lt;%#Bind(”P_D_Name“)%&gt;”

答案 1 :(得分:1)

//you just use "<%#Eval("P_D_Name") %>"    

<asp:HyperLink ID="HyperLink1" runat="server" Text="<%#Eval("P_D_Name") %>" Target="_blank" NavigateUrl='<%# "MYURL" + Eval("P_D_Name")%>'></asp:HyperLink>

答案 2 :(得分:0)

您只需使用与NavigateUrl相同的DataBinding类型:

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource1">
     <Columns>
         <asp:BoundField DataField="P_D_Name" HeaderText="P_D_Name" 
                SortExpression="P_D_Name" Visible="False" />
         <asp:TemplateField>
             <ItemTemplate>
                 <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("P_D_Name")%>' Target="_blank" NavigateUrl='<%# "MYURL" + Eval("P_D_Name")%>'></asp:HyperLink>
             </ItemTemplate>
         </asp:TemplateField>
     </Columns>
 </asp:GridView>