如何让 gridview 中的每一行都超链接到 asp.net 中的另一个操作?

how to each row in gridview makes a hyperlink to another action in asp.net?

我是 asp.net 的初学者。我认为这个问题对专家来说很愚蠢。 问题是我在 mysql 有一个学生 table。学生 table 有一个名为 "batch" 的列。当用户搜索一个批次时,该批次中的学生姓名会出现在网格视图中 table。

现在我想为每一列制作 link,这样如果用户单击一行 table,那么该学生的完整个人资料就会显示在新页面中。

如何将行设置为 Hyperlink?

你的问题太宽泛了。

want to make link for every column so that if user click a row of table,then the full profile of that student shows in a new page

仅通过在一行上单击 将用户重定向到新页面 对用户来说并不友好。

相反,您可以在单元格中创建一个 hyperlink。当用户点击 link,然后将用户重定向到详细信息页面。

您可以使用 HyperLinkField or TemplateField 在 GridView 中创建一个 link。例如-

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:HyperLinkField
            DataNavigateUrlFields="Batch"
            DataNavigateUrlFormatString="~/Details.aspx?id={0}"
            DataTextField="Batch"
            DataTextFormatString="{0}">
        </asp:HyperLinkField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:HyperLink runat="server" ID="HyperLink1"
                    NavigateUrl='~/Details.aspx?id=<%# Eval("Batch") %>'>
                    <%# Eval("Batch") %>
                </asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

仅供参考: 有些人在行上使用双击功能,但如果您是新手,这有点棘手 ASP.Net

有两种两种方法可以实现...
1.You 可以使用 gridview 的选定索引更改 属性。这是服务器端 event.you 可以编写
服务器端代码并​​重定向到学生个人资料页面。


2.Or 您可以使用 Jquery 或 javascript 添加指向 row.Just 的超链接,找出网格视图 table 并在 [=31= 中循环
] 并为每个 row.Write 添加一个处理 onclick 事件的函数,例如
this.

函数 rowclick(studentid)
{
window.location='studentprofile.aspx?studentid='+studentid;
}

您应该像这样在 GridView 标签之间添加 OnRowDataBound="GridView1_RowDataBound"

  <asp:GridView AllowPaging="true" PageSize="20" CssClass="table table-striped table-bordered table-hover" ID="GridView1" runat="server"
            OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDataBound="GridView1_RowDataBound">
        </asp:GridView>

并添加这些代码并将 "ColumName" 更改为您的 SQL 查询名称。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    string MyId = DataBinder.Eval(e.Row.DataItem, "ColumnName").ToString();
                    string Location = ResolveUrl("~/Your.aspx") + "?ColumName=" + MyId;
                    e.Row.Attributes["onClick"] = string.Format("javascript:window.location='{0}';", Location);
                    e.Row.Style["cursor"] = "pointer";
                }
            }