在gridview中添加超链接

时间:2014-04-02 04:29:38

标签: c# asp.net sql gridview

我有一个gridview,它显示所有包含TaskIdTitleRewardTime AllottedPoster Name列的数据库表。虽然我的所有SqlConnection代码都存在于另一个用于将数据插入数据库表的webform中。

以下是InsertTask.aspx.cs页面上的代码:

protected void btnPost_Click(object sender, EventArgs e)
{
    string CS = ConfigurationManager.ConnectionStrings["ABCD"].ConnectionString;

    using (SqlConnection con = new SqlConnection(CS))
    {
        SqlCommand cmd = new SqlCommand("spTasks", con);
        cmd.CommandType = System.Data.CommandType.StoredProcedure;

        cmd.Parameters.AddWithValue("@Title", txtTitle.Text);
        cmd.Parameters.AddWithValue("@Body", txtBody.Text);
        cmd.Parameters.AddWithValue("@Reward", txtRewards.Text);
        cmd.Parameters.AddWithValue("@TimeAllotted", txtTime.Text);
        cmd.Parameters.AddWithValue("@PosterName", txtPoster.Text);

        con.Open();
        cmd.ExecuteNonQuery();
        lblStatus.Text = "Task Posted Successfully.";
    }
}

这会成功将任务插入到数据库表中。因此,在default.aspx的新webform上,我有一个gridview,它连接到该数据库表并显示表中的任务列表。

同样,我还没有在default.aspx.cs上编写任何代码。

我需要做的是将Title作为gridview中的超链接,我可以单击该超链接并获取与行相符的不同页面。可以这样做吗?或者我应该使用所有行上的按钮来相应地访问其他页面。怎么办?

我没有使用gridview的经验。

4 个答案:

答案 0 :(得分:3)

<telerik:GridTemplateColumn HeaderText="Action">
                <ItemTemplate>
                    <a id="A1" runat="server" href='<%#  @"~\Demolink.aspx"+( Eval("Record_ID").ToString()) %>'>
                      <%#Eval("Title ") %> </a>
                </ItemTemplate>
            </telerik:GridTemplateColumn>

答案 1 :(得分:2)

是的,您当然可以使用超链接标题。要提供超链接,您可以使用 TemplateField ,如下面的代码示例中所述:

<asp:GridView runat="server" ID="gridTask" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <a href="htttp://www.stackoverflow.com"><%#Eval("Title") %> </a>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="Body" HeaderText="Body" />
        <asp:BoundField DataField="Reward" HeaderText="Reward" />
    </Columns>
</asp:GridView>

注意:这里我使用了stackoverflow网站网址。相反,你可以使用你的网页的网址。

答案 2 :(得分:2)

根据您的要求,将所有数据获取到数据集或数据表并将其绑定到gridview。在default.aspx标记中,我们可以使用<asp:TemplateField><ItemTemplate></ItemTemplate></asp:TemplateField>标记中的<Columns>以不同的方式将gridview列转换为超链接字段

这里我添加了两个控件,一个是html超链接,另一个是asp:超链接

<asp:GridView runat="server" ID="gvrecords"  AutoGenerateColumns="false" DataKeyNames="Title">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" Text='<%# Bind("Title") %>' NavigateUrl='<%# Bind("Title", "~/../urpath/{0}") %>' runat="server"/>
<a href ='<%#"page.aspx?TitleID="+DataBinder.Eval(Container.DataItem,"TitleId") %>'> <%#Eval("Title") %>  </a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

答案 3 :(得分:0)

<asp:TemplateField>
        <ItemTemplate>
            <a href="htttp://www.mydummyurl.com"><%#Eval("Title") %> </a>
        </ItemTemplate>
 </asp:TemplateField>

这应该有效!