想实现将当前页面提交到别一个页面,并把值通过POST方法传过去,而且需要单独打开一个新页,以前用ASP可以很简单的实现,如下:
<form name="form1" method="post" action="2.asp" target="_blank">
<table>
<tr><td><input type="text" name="txt1"><input type=submit name="提交"></td></tr>
</table>
</form>可以,当我在.net下,要实现如上的功能(将本页的表单提交到新打开的页面中),在.net的<form>中还有TextBox, DrowDownList(此控件可以提交)等服务器控件,我也将<form target="_blank">属性加上了,实现不了,请问如何实现?
<form name="form1" method="post" action="2.asp" target="_blank">
<table>
<tr><td><input type="text" name="txt1"><input type=submit name="提交"></td></tr>
</table>
</form>可以,当我在.net下,要实现如上的功能(将本页的表单提交到新打开的页面中),在.net的<form>中还有TextBox, DrowDownList(此控件可以提交)等服务器控件,我也将<form target="_blank">属性加上了,实现不了,请问如何实现?
2,再可以用Server.Transfer 或者 Response.Redirect重定向
下面代码:
Response.Redirect("target.aspx?myText="+this.TextBox1.Text);2,在本页的按钮事件中向客户端发送一个JavaScript脚本块,使用JavaScript脚本的Window.open方法来实现客户端弹出新页面功能,同时可以传递本页中文本框的值作为参数。
下面是示例:
protected void Button1_Click(object sender, EventArgs e)
{
//VS 2005中使用
ClientScript.RegisterClientScriptBlock(this.GetType(), "MyWindow", "<SCRIPT>window.open('target.aspx?myText="+this.TextBox1.Text+"','MyWindow')</SCRIPT>");
//VS 2003中使用
//RegisterClientScriptBlock("", "<SCRIPT>window.open('Default.aspx','MyWindow')</SCRIPT>");
}
上面例子中按钮事件是在本页写的,window.open方法中的target.aspx就是你要弹出的新页面myText=this.TextBox1.Text 我想这个对于你做ASP的应该知道,它传递参数。'MyWindow'参数是为你的新开页面指定一个ID,用来防止多次点击按钮时会弹出多个页面,这样只能弹出一个页面。下面是在本页内写的方法,下面是target.aspx页接收后显示到页面的一句代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Request.QueryString["myText"].ToString());
}
在页面加载时获取请求字符串的myText变量中的内容来进行显示。我们看到上面2个例子一个是从服务器端进行页面重定向的,一个是使用客户端脚本块进行页面重定向的,2个例子中的目标页中代码完全一样,主要看需求是在服务器端还是在客户端进行处理。
只是asp.net有更好的做法。
如果一定要按楼主的思路,aspx叶面也可以处理Request里面的信息。
<form name="form1" method="post" action="2.aspx" target="_blank">
<table>
<tr><td><input type="text" name="txt1"><input type=submit name="提交"></td></tr>
</table>
</form>
2.asp 改成 2.aspx
然后在2.aspx里面用Request.Form["txt1"]取到txt1里面的value
<table>
<tr><td><input type="text" name="txt1"><input type=submit name="提交"></td></tr>
</table>
</form>
{
//VS 2005中使用
ClientScript.RegisterClientScriptBlock(this.GetType(), "MyWindow", "<SCRIPT>window.open('target.aspx?myText="+this.TextBox1.Text+"','MyWindow')</SCRIPT>");
//VS 2003中使用
//RegisterClientScriptBlock("", "<SCRIPT>window.open('Default.aspx','MyWindow')</SCRIPT>");
}这种方法我经常用的,很好用;楼主可以试试。
ps: .net 2.0中才有这个属性
ID不变,照样用Request.Form["ID"]取