【问题标题】:How to use 2 gridview cell values column to build a hyper link如何使用 2 个 gridview 单元格值列来构建超链接
【发布时间】:2019-01-09 14:39:09
【问题描述】:

我有一个网格视图。我需要在一列中建立一个超链接,其中包含来自不同列的值及其自身的值。因此,例如 URL 将是 something.com/column1value/column2value。

我通过相应列中的 TemplateField 超链接了系统和区域。在第 2 列中,我想根据 column1 中的值构建 url

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SQL" Class='table table-hover' BorderStyle="None" BorderColor="White" GridLines="None" UseAccessibleHeader="False" ShowFooter="True" ShowHeaderWhenEmpty="True" EnableTheming="False">
    <Columns>
        <asp:BoundField DataField="Type" HeaderText="Type" SortExpression="Type" />
        <asp:TemplateField HeaderText="System" SortExpression="System">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("System") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("System", "http://evemaps.dotlan.net/system/{0}/") %>' Target="_blank" Text='<%# Eval("System", "{0}") %>'></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Region" SortExpression="Region">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Region") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Region", "http://evemaps.dotlan.net/Map/{0}/") %>' Target="_blank" Text='<%# Eval("Region", "{0}") %>'></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="Location" HeaderText="Location" SortExpression="Location" />
        <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
        <asp:BoundField DataField="Owner" HeaderText="Owner" SortExpression="Owner" />
        <asp:BoundField DataField="Notes" HeaderText="Notes" SortExpression="Notes" />
        <asp:TemplateField HeaderText="EvE Time" SortExpression="EvE Time">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("[EvE Time]") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="EvETimeLB" runat="server" Text='<%# Bind("[EvE Time]") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <HeaderStyle Font-Bold="True" />
</asp:GridView>

【问题讨论】:

  • 如果文本有空格,例如“曼彻斯特城”,但我想用下划线替换超链接(不是文本)中的空格
  • 然后这样做:string.Format("something.com/{0}/{1}", Eval("column1").ToString().Replace(" ", "_"), Eval("column2").ToString().Replace(" ", "_"))

标签: asp.net vb.net gridview


【解决方案1】:

使用Eval 不限于您使用它的列。您可以使用ItemTemplate 中的所有列。

<asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" 
   NavigateUrl='<%# string.Format("something.com/{0}/{1}", Eval("column1"), Eval("column2")) %>' 
   Text='<%# string.Format("something.com/{0}/{1}", Eval("column1"), Eval("column2")) %>'>
</asp:HyperLink>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    相关资源
    最近更新 更多