asp.net form 表单怎样像ASP一样的提交。
来源:互联网 发布:山西冰点网络 编辑:程序博客网 时间:2024/05/08 11:09
先有一需求:有页面Default.aspx为开始页面,result.aspx为接收form表单页面。Default.aspx 代码:通过javascript生成checkbox选择框。<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>无标题页</title> <script type="text/javascript"> function creat() { var text=document.createElement("input"); text.setAttribute("name","creat"); text.id="creat"; text.type="checkbox"; text .setAttribute("checked","false"); text .value="ssfsfdf"; document.forms["iddd"].appendChild(text); } </script></head><body onload="creat();"> </form> <form id="iddd" action="result.aspx" method="post"> <input id="bn" name="bn" type="text" value="123" /> <input name="wwws" type="checkbox" /> <input type="submit" value="submit" /></form></body></html>result.aspx.cs 代码仅接收统计default.aspx页面的表单控件的个数。 protected void Page_Load(object sender, EventArgs e) { string s = Request.Form.Count.ToString (); Response.Write(s); }经过测试:如果input 的type 为文本框,result.aspx 页面返回值3. 如果input 的type 为checkbox,radio 页面返回值就少了1 但是如果input 的type为checkbox 存在checked 并且disabled不存在则页面返回值仍然为3,如果disabled存在则页面的返回值又会减少1.如果为所有的input 加上runat=server 则页面返回值为四(包括了submit).但是javascript 不能控制runat=server 所以动态的input type=checkbox 不存在checked属性或者存在disabled,就取不到值了,哪位专家,高手。能告诉我这个是什么原因呀???是.net 的机制问题吗???以上结果经过详细验证得出。
我知道name必须有但是我的描述中,的input 有name属性呀。我的意思是:<input type="checkbox" name="chk" checked="checked"/>这样Request.Form["ckk"]可以取到值,但是<input type="checkbox" name="chk"/>和<input type="checkbox" name ="chk" disabled="disabled"/>用Request.Form["chk"]就取不到值呀???,请注意区别就是:checked 属性disabled属性。期待哪位专家,高手能告诉小弟??????
name 属性必须
MSDN解释:The Form collection is indexed by the names of the parameters in the request body
另外,对于大于100kb的post数据,需要用 Request.BinaryRead
---------------------------------------以上内容好像与标题不符合------------------------------------------
使用Server.Transfer
这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:
1,在页面里添加必要的控件
2,创建返回值的Get属性过程
3,创建可以返回表单的按钮和链接按钮
4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面
5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了
以下代码综合实现上述步骤过程的代码:
源页面代码:
把以下的代码添加到页面中
public string Name
{
get
{
return TextBox1.Text;
}
}
public string EMail
{
get
{
return TextBox2.Text;
}
}
然后调用Server.Transfer方法
private void Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("anotherwebform.aspx");
}
目标页面代码:
private void Page_Load
(object sender, System.EventArgs e)
{
//create instance of source web form
WebForm1 wf1;
//get reference to current handler instance
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}
或:-------------------------------------------------------------
在WebForm1.aspx 的某个事件中写入如下代码:Server.Transfer("WebForm2.aspx"); //传递页面对象
接着就可以在WebForm2.aspx.cs中获取WebForm1的页面对象。
if(Context.Handler is WebForm1) //判断传递过来的是否WebForm1,因为可能会有多个传递对象。
{
WebForm1 f1=(WebForm1)Context.Handler; //通过Context.Handler来创建一个WebForm1的页面对象,返 回一个object
Response.Write("Hey,I get it with Context Handler "+((TextBox)f1.FindControl("TextBox1")).Text+" ");
}
- asp.net form 表单怎样像ASP一样的提交。
- ASP.NET的Form表单
- ASP.NET提交表单
- JQuery Form Ajax提交asp.net表单时失败
- ASP.net基于Form的表单认证
- ASP.NET获取表单form的值
- ASP.NET(ASPX)页面获取form表单提交元素的值
- JQuery Form Ajax提交Asp.Net表单时的验证视图状态 MAC 失败
- ASP.NET(ASPX)页面获取form表单提交元素的值
- asp.net中通过form表单submit提交到后台的实例
- asp.net中通过form表单submit提交到后台的实例
- ASP.NET(ASPX)页面获取form表单提交元素的值
- [ASP.NET]如何在表单提交(form,submit)后保持select的选择值
- asp.net中通过form表单submit提交到后台的实例
- asp.net中通过form表单submit提交到后台的实例
- asp.net中通过form表单submit提交到后台的实例
- asp.net form post 提交 asp.net js form 提交
- ASP.NET下的表单提交问题
- Hibernate程序性能优化
- 装了maven插件的eclipse中M2_REPO无法编辑、删除
- iframe 自适应高度,兼容各浏览器
- UDP套接字
- 程序员练级攻略
- asp.net form 表单怎样像ASP一样的提交。
- Android输入法框的梳理
- Mysql物化视图应用
- DatagramSocket
- Hibernate数据加载方式
- fedora 16下eamcs配置php
- InetAddress类的使用
- 在android的状态栏(statusbar)中增加menu,home和back快捷键的方法
- cvCvtPixToPlane