一,当前页面中,前台界面的主要代码:
<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效果为:
实现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();
即可.