web-dev-qa-db-ja.com

gridview c#asp.netでboundfieldにハイパーリンクを追加する方法

Aspxページにグリッドビューがあります。ユーザーがComponent1の値をクリックしたときに、BoundFieldからコンポーネントへのハイパーリンクを追加する必要があります。 BoundFieldに関連するboundfieldにハイパーリンクを追加するにはどうすればよいですか?

<asp:GridView ID="Module" runat="server" AutoGenerateColumns="False" BackColor="White"
        BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4"
        DataSourceID="dsrcGetModuleData" Font-Size="0.65em" ForeColor="Black" GridLines="Vertical" DataKeyNames="TestID">
        <FooterStyle BackColor="#CCCC99" />
        <Columns>

<asp:BoundField DataField="Component1"  ItemStyle-Font-Size="Small" HeaderStyle-Width="80px"  HeaderStyle-Font-Size ="Medium" SortExpression="Component1"   /> 

</Columns>
        <RowStyle BackColor="#F7F7DE" />
        <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right"  />
        <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="White"  />
    </asp:GridView>
10
user2994144

これを試して。

 <asp:GridView ID="Module" runat="server" AutoGenerateColumns="False" BackColor="White"
    BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4"
    DataSourceID="dsrcGetModuleData" Font-Size="0.65em" ForeColor="Black" GridLines="Vertical" DataKeyNames="TestID">
    <FooterStyle BackColor="#CCCC99" />
 <Columns>
  <asp:HyperLinkField DataNavigateUrlFields="StockNumber" HeaderText="Stock Number" DataNavigateUrlFormatString="ReplacePage.aspx?StockNumber={0}" DataTextField="StockNumber" />
 </Columns>
 <RowStyle BackColor="#F7F7DE" />
    <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right"  />
    <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="White"  />
 </asp:GridView>

複数の変数を渡すには、次のようにします。

 <asp:GridView ID="Module" runat="server" AutoGenerateColumns="False" BackColor="White"
    BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4"
    DataSourceID="dsrcGetModuleData" Font-Size="0.65em" ForeColor="Black" GridLines="Vertical" DataKeyNames="TestID">
    <FooterStyle BackColor="#CCCC99" />
 <Columns>
  <asp:HyperLinkField DataNavigateUrlFields="StockNumber, ID, CITY" HeaderText="Stock Number" DataNavigateUrlFormatString="ReplacePage.aspx?StockNumber={0}&id={1}&CITY{2}" DataTextField="StockNumber" />
 </Columns>
 <RowStyle BackColor="#F7F7DE" />
    <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right"  />
    <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="White"  />
 </asp:GridView>

DataNavigateUrlFields-ハイパーリンク列を使用して渡したいフィールド。

DataTextField-DatagridViewの現在の表示フィールド。

HeaderText-DataTextField値の説明であるはずのヘッダーテキスト。

14
Victor_Tlepshev

バインドされたフィールドにリンクボタンを配置することはできません。ただし、それをTemplateFieldに変換できます。これが私のLinkBut​​tonの例です。

<asp:TemplateField HeaderText="StockNumber" SortExpression="STOCK NO">
      <ItemTemplate>
           <asp:LinkButton ID="lbStockNumber" runat="server" Text='<%# Bind("StockNumber") %>' OnClick="lbStockNumber_Click"></asp:LinkButton>
      </ItemTemplate>
      <HeaderStyle BackColor="Black" ForeColor="White" HorizontalAlign="Left" Width="80px" />
      <ItemStyle HorizontalAlign="Left" />
</asp:TemplateField>

これをTemplateFieldに変換します。デザインビューにいることを確認します。次に、スマートタグをクリックします。列を編集し、列を選択して、プロパティの下にある[Convert to TemplateField]をクリックします

編集:私はあなたがLinkBut​​tonの代わりにHyperLinkを望んでいることに気づきました引き続き同じ方法で変換しますが、代わりにハイパーリンクを配置します。

<asp:HyperLink ID="hlStockNumber" runat="server" Text='<%# Bind("StockNumber") %>' OnClick="lbStockNumber_Click"></asp:HyperLink> 

お役に立てれば!

3
Humpy