10

グリッドビューを持つ Web ページを作成しようとしています。このグリッドビューには、以下のようなリンクがあるはずです

http://localhost/Test.aspx?code=123

ユーザーがグリッドビューで行のリンクの 1 つをクリックすると、空白のページが開き、結果が表示されます。

データをグリッドビューにバインドする方法は次のとおりですが、リンクを設定する方法がわかりません

protected void Page_Load(object sender, EventArgs e)
{
    string firma_no = logoFrmNr.ToString().PadLeft(3, '0');
    string active_period = logoFrmPeriod.PadLeft(2, '0');

    SqlConnection conn = new SqlConnection(conStr);
    string selectSql = @"SELECT 
                                LOGICALREF,
                                CODE , 
                                DEFINITION_ ,
                                FROM 
                                LG_CLFLINE";

    SqlCommand cmd = new SqlCommand(selectSql, conn);
    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);
    GridView1.DataSource = dt;
    GridView1.DataBind();

    conn.Close();
}

ここにマークアップがあります

<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True">
</asp:GridView>

CODE 列からリンクを作成するにはどうすればよいですか?

4

4 に答える 4

10

これにはコツがあります。リンクをフォーマットできないため、ハイパーリンク列は機能しません。バウンドフィールドを使用して、テキストをフォーマットします。そのようです

<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True">
    <Columns>
        <asp:BoundField DataField="Code" HtmlEncode="False" DataFormatString="<a target='_blank' href='Test.aspx?code={0}'>Link Text Goes here</a>" />
    </Columns>
</asp:GridView>

または、編集および挿入テンプレートを指定する必要がある場合は、テンプレート フィールドを使用できます。

于 2013-11-05T20:58:39.633 に答える
10

Columnsこれをグリッド ビューのマークアップの定義に追加します。

<asp:TemplateField HeaderText="Hyperlink">
    <ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" 
            NavigateUrl='<%# Eval("CODE", @"http://localhost/Test.aspx?code={0}") %>' 
            Text='link to code'>
        </asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>
于 2013-11-05T21:00:43.880 に答える
3

私にとって、それは次のようなものになります

<asp:DataGrid id="MyDataGrid" 
           GridLines="Both"
           AutoGenerateColumns="false"
           runat="server">

         <HeaderStyle BackColor="#aaaadd"/>

         <Columns>

            <asp:HyperLinkColumn
                 HeaderText="Select an Item"
                 DataNavigateUrlField="code"
                 DataNavigateUrlFormatString="http://localhost/Test.aspx?code={0}"
                 Target="_blank"/>

         </Columns>

      </asp:DataGrid>
于 2013-11-05T21:06:11.220 に答える
2

マークアップで HyperLinkColumn を使用できるはずです。

ハイパーリンク列のドキュメント

于 2013-11-05T20:52:49.457 に答える