如何在asp.net中的Web表单之间传递信息

时间:2014-01-01 06:02:34

标签: c# asp.net webforms

如何在asp.net中将一些信息从一个Web表单发送到另一个Web表单 第一个网络表单是HumanList.aspx,显示GridView组件中的人员列表。 当用户点击编辑链接时,我想将人类ID(人类记录ID的值)从HumanList.aspx传递到另一个名为HumanEdit.aspx的网络表单。 在humanEdit.aspx中,我想加载该人(使用humanID)并将人类信息填充到文本框中。

5 个答案:

答案 0 :(得分:12)

有很多方法可以在页面之间传递参数。

  1. 使用Querystring
  2. 来源页面 - Response.Redirect("second.aspx?param=value");

    目标网页 - Request.QueryString["param"]

    1. 使用Session
    2. 源页面 - 此处设置Session["param"] = "value";值。

      目标网页 - Session["param"].ToString()。在这里检索价值。

      1. 使用PreviousPage属性。注意:如果您从first.aspx(仅此处为示例)重定向到second.aspx,则可以使用此选项,然后您可以将PreviousPage.<propname>中的second.aspx用于first.aspx中设置的值}。
      2. second.aspx中,您需要添加类似<%@ PreviousPageType VirtualPath="~/first.aspx" %>的指令。

        1. 使用Request.Form阅读发布的值。
        2. 如果源页面中存在inputdropdownlist并且您要将值发布到second.aspx,那么您可以使用Request.Form["input_id"]阅读发布的值。

          1. 使用cookies传输值。首先将一些值保存到first.aspx的Cookie中,然后从second.aspx中读取该值。
          2. 有关详细信息,请参阅MSDN - MSDN link

答案 1 :(得分:1)

考虑使用会话或查询字符串。

会话可以像

一样使用

传递值

 Session["value"]=someValue;

得到像

这样的价值
 var value= Session["value"].toString();

您也可以在属性的帮助下传递值

答案 2 :(得分:-1)

我建议将其存储在会话状态:http://msdn.microsoft.com/en-us/library/ms178581.aspx

答案 3 :(得分:-1)

嗯,有很多方法可以将信息页面传递给页面。

一种主要方式是 QueryString

//To Send
private void submit_Click(object sender, System.EventArgs e)
{
    string ID = String.Empty;

    ID = "192" // Have your ID Here

    Response.Redirect("humanEdit.aspx?ID=" + ID );
}


//To Receive
private void Page_Load(object sender, System.EventArgs e)
{
   String ID = String.Empty;
   ID=Request.QueryString["name"];
}

另一种方法是会话

//Store your ID from Sending Page
Session["ID"]= "143"; //Example ID

//To Recieve
private void Page_Load(object sender, System.EventArgs e)
{
   String ID = String.Empty;
   ID=Session["ID"].toString();
}

还有很多其他方法......

答案 4 :(得分:-2)

假设你有一个带有按钮字段的gridview1说“修改” 首先为该字段提供命令名称说“Mod” 现在在HumanList.aspx页面的Gridview1_RowCommand()函数中写下这样的代码 -

switch (e.CommandName.Trim())
{
case "Mod":
int r1=Int32.Parse((e.CommandArgument).ToString());
Session["id"]=GridView1.DataKeys[r1].Value.ToString();
Response.Redirect("HumanEdit.aspx?id=" + Session["id"]);
break;
}

现在在HumanEdit.aspx.cs中,您可以创建自己的类,并且在该类中可以拥有一个数据表对象。在该对象中存储Sql查询并在page_load()中调用该类。 说课是

Public void show()
{
Within datatable object you can write your query like this
select x,y,z, from tbl_name where id=" + Request.QueryString["id"]
if(dt.Rows.Count>0)
{
Xtext.Text=dt.Rows[0]["x"].ToString();
Ytext.Text=dt.Rows[0]["y"].ToString();
Ztext.Text=dt.Rows[0]["z"].ToString();
}
}

这么多代码足以得到你想要的东西。