asp.net - GridView根据linkButton值不同跳转不同页面

一,当前页面中,前台界面的主要代码:

<asp:TemplateField HeaderText="姓名">
                            <ItemTemplate>
                            <!--根据id去寻找详细信息-->
                                <asp:LinkButton id="hlinkName" runat="server" CommandName="getDetail" CommandArgument= '<%# Bind("id") %>' Text='<%# Bind("name") %>'></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>

 该代码是GridView中的一部分,主要实现的是当用户在'姓名'这一列对应的值上点击时,跳转到'Detail.aspx'页面,并选择当前行的详细信息,显示在'Detail.aspx'页面中.

当前页面GridView效果为:asp.net - GridView根据linkButton值不同跳转不同页面_第1张图片

实现GridView的后台代码为:

/// <summary>
    /// 进入详细页面.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvw_RowCommand(object sender, GridViewCommandEventArgs e) {
        if (e.CommandName.Equals("getDetail")) {
            //根据将当前行的id传递到另一个页面中.
            Response.Redirect(@"~\Detail.aspx?id=" + e.CommandArgument);
        }
    }

 二,Detail.aspx(目标)页面中,

  1,首先,在前台的GridView中,去掉GridView绑定数据源的控件AccessDataSource中的SelectCommand,并在后台代码手动设置SelectCommand内容,如,可以在Pape_Load的时候,加入:

string id = Request.QueryString["id"];
        //access 数据源控件的SelectCommand的后台绑定.
        AccessDataSrc.SelectCommand = "select * from [t_man] where [id]=@id";
        AccessDataSrc.SelectParameters.Clear(); //清除可能已有选择参数.
        AccessDataSrc.SelectParameters.Add("id", TypeCode.Int32, id);
        AccessDataSrc.DataBind();

 即可.

你可能感兴趣的:(GridView)