如何在asp.net中将一些信息从一个Web表单发送到另一个Web表单
第一个网络表单是HumanList.aspx
,显示GridView
组件中的人员列表。
当用户点击编辑链接时,我想将人类ID(人类记录ID的值)从HumanList.aspx
传递到另一个名为HumanEdit.aspx
的网络表单。
在humanEdit.aspx中,我想加载该人(使用humanID
)并将人类信息填充到文本框中。
答案 0 :(得分:12)
有很多方法可以在页面之间传递参数。
Querystring
。 来源页面 - Response.Redirect("second.aspx?param=value");
目标网页 - Request.QueryString["param"]
。
Session
。源页面 - 此处设置Session["param"] = "value";
值。
目标网页 - Session["param"].ToString()
。在这里检索价值。
PreviousPage
属性。注意:如果您从first.aspx
(仅此处为示例)重定向到second.aspx
,则可以使用此选项,然后您可以将PreviousPage.<propname>
中的second.aspx
用于first.aspx
中设置的值}。在second.aspx
中,您需要添加类似<%@ PreviousPageType VirtualPath="~/first.aspx" %>
的指令。
Request.Form
阅读发布的值。如果源页面中存在input
,dropdownlist
并且您要将值发布到second.aspx
,那么您可以使用Request.Form["input_id"]
阅读发布的值。
cookies
传输值。首先将一些值保存到first.aspx
的Cookie中,然后从second.aspx
中读取该值。有关详细信息,请参阅MSDN - MSDN link
答案 1 :(得分:1)
考虑使用会话或查询字符串。
会话可以像
一样使用传递值
Session["value"]=someValue;
得到像
这样的价值 var value= Session["value"].toString();
您也可以在属性的帮助下传递值
答案 2 :(得分:-1)
答案 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();
}
}
这么多代码足以得到你想要的东西。