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