大家好,向大家请教个问题。我想实现gridview页面传值,将主键id传过去了。希望在新页面中根据读取的id将其他数据读取出来。在不同的textbox中显示出来。谢谢大家。

解决方案 »

  1.   

    看这里:
    GridView
      

  2.   

    详细解答过程:default.aspx是一个列表,show.aspx是一个详细页面//default.aspx
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="gvList" runat="server" >
                <Columns>
                    <asp:TemplateField HeaderText="用户名">
                        <ItemTemplate>
                            <asp:LinkButton ID="lbUserName" runat="server" Text='<%#Eval("UserName") %>' CommandArgument='<%#Eval("UserId")%>'
                             OnClick="lbUserName_Click"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="UserEmail">
                    </asp:BoundField>
                </Columns>
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>
    //default.aspx.cs
    protected void lbUserName_Click(object sender, EventArgs e)
            {
                LinkButton lb=sender as LinkButton ;
                string userId = lb.CommandArgument;
                Response.Redirect("show.aspx?userId="+userId);
            }
    //show.aspx
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <table>
            <tr>
                <td>
                    <asp:Label ID="label1" runat="server" Text=""></asp:Label>
                </td>
                <td>
                    <asp:Label ID="label2" runat="server" Text=""></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="label3" runat="server" Text=""></asp:Label>
                </td>
                <td>
                    <asp:Label ID="label4" runat="server" Text=""></asp:Label>
                </td>
            </tr>
        </table>    
        </div>
        </form>
    </body>
    </html>//show.aspx.cs
    protected void Page_Load(object sender, EventArgs e)
            {
                string userId = Request.QueryString["userId"].ToString();
                //省略连接数据库,并根据userId取得用户信息保存在datatable中的过程
                  DataTable dt = 数据源;
                if (dt.Rows.Count > 0)
                {
                    label2.Text = dt.Rows[0]["userName"].ToString();
                    label4.Text = dt.Rows[0]["userEmail"].ToString();
                }
            }