在页面之间传递DataKeys

时间:2011-12-12 23:27:13

标签: asp.net

在默认页面上使用GridView,并希望显示在另一页上选择的行的详细信息。捕获和发送datakey的代码是 -

protected void SelectedIndexChanged(object sender, EventArgs e)
{
            int index = GridView1.SelectedIndex;
            Response.Redirect("InvoicePage.aspx? EntityID= " + GridView1.DataKeys[index].Value.ToString()); 
}

检索值的代码是 -

protected void Page_Load(object sender, EventArgs e)
{
    string id = Request.QueryString["EntityID"];
}

我的问题是接收页面上的id变量为null。我错过了什么?

2 个答案:

答案 0 :(得分:1)

您的网址应如下所示:InvoicePage.aspx?EntityID="EntityID之前或之后没有空格

答案 1 :(得分:0)

顺便删除空格:aspx?<> * EntityID <> * =

protected void SelectedIndexChanged(object sender, EventArgs e)
{
            int index = GridView1.SelectedIndex;
            string id = GridView1.DataKeys[index].Value.ToString();
            Response.Redirect("InvoicePage.aspx?EntityID="+id); 
}

尝试添加:

private string _EntityId;

    //To check  if value pass on query string 
    //but this is not really required if you want
    public string EntityId
            {
                get
                {
                    if (Request.QueryString["EntityID"] != null)
                    {
                        try
                        {
                            _EntityId = Convert.ToString(Request.QueryString["EntityID"].ToString());

                        }
                        catch (Exception ex)
                        {

                            throw new Exception(ex.Message);
                        }
                    }
                    else
                    {
                        _EntityId="0";
                    }

                    return _EntityId;
                }
            }


 protected void Page_Load(object sender, EventArgs e)
{
    //Request.QueryString["EntityID"].ToString(); 
    string id = EntityId;
}

Regads