C# 如何使用将存储在querystring变量中的一个属性导航到book_detail.aspx页面

C# 如何使用将存储在querystring变量中的一个属性导航到book_detail.aspx页面,c#,asp.net,query-string,aspxgridview,C#,Asp.net,Query String,Aspxgridview,我创建了一个图书详细信息页面,显示图书封面图片、书名、作者、isbn号等 book_all.aspx 我希望下面的例子能对你有所帮助。这是我的一个项目的摘要,它做的事情和你需要的一样 作为大纲,您必须执行以下步骤: 在GridView中,创建一个TemplateField,其中包含导航到其他页面的链接(linkButton或imageButton或Button) 设置该链接控件的CommandArgument和CommandName属性 在C#代码中,处理gridView的RowCommand

我创建了一个图书详细信息页面,显示图书封面图片、书名、作者、isbn号等

book_all.aspx
我希望下面的例子能对你有所帮助。这是我的一个项目的摘要,它做的事情和你需要的一样

作为大纲,您必须执行以下步骤:

  • 在GridView中,创建一个TemplateField,其中包含导航到其他页面的链接(linkButton或imageButton或Button)
  • 设置该链接控件的CommandArgument和CommandName属性
  • 在C#代码中,处理gridView的RowCommand事件
  • 根据commandName和commandArgument导航到其他页面
.ASPX

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" OnRowCommand="gv_RowCommand"
    EmptyDataText="No record found" Width="1000px">
    <Columns>
        <asp:BoundField DataField="ISBN" />
        <asp:BoundField DataField="Title" HeaderText="Title"/>
        .
        .
        .
        .
        .
        <asp:TemplateField HeaderText="Actions">
            <ItemTemplate>
                <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%# Eval("ISBN") %>'
                    CommandName="viewDetails">View Details</asp:LinkButton>             </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

您需要在gridview中为“查看书籍详细信息”创建一个自定义列,并使用EventArgs,您可以使用isbnno的querystring导航到详细信息页面。非常感谢您
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Data.SqlClient;

public partial class book_all : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void detail_click(object sender, EventArgs e)
    {
        Response.Redirect("book_detail.aspx?IsbnNo="+GridView1.FindControl("isbn").ToString());

    }
}
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" OnRowCommand="gv_RowCommand"
    EmptyDataText="No record found" Width="1000px">
    <Columns>
        <asp:BoundField DataField="ISBN" />
        <asp:BoundField DataField="Title" HeaderText="Title"/>
        .
        .
        .
        .
        .
        <asp:TemplateField HeaderText="Actions">
            <ItemTemplate>
                <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%# Eval("ISBN") %>'
                    CommandName="viewDetails">View Details</asp:LinkButton>             </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
{
    // ensure that commandArgument is not null, which may happen when someone tries to hack the page
    string isbn = e.CommandArgument.ToString();
    if (string.IsNullOrEmpty(uid))
    {
        // error message, someone has tried to hack the web page
        return;
    }

    if (e.CommandName == "viewDetails")
    {
        Response.Redirect("book-details.aspx?isbn=" + isbn);
        return;
    }

    // handle any other command that may be there (like delete, edit, etc)
}