首页 新闻 会员 周边

asp.net form 表单怎样像ASP一样的提交。

0
悬赏园豆:100 [已关闭问题]

先有一需求:

有页面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属性。期待哪位专家,高手能告诉小弟??????
NewSoftsNet的主页 NewSoftsNet | 初学一级 | 园豆:92
提问于:2009-12-08 16:44
< >
分享
其他回答(1)
0

name 属性必须

woody.wu | 园豆:3621 (老鸟四级) | 2009-12-08 20:26
0

一楼说的是对的

MSDN解释:The Form collection is indexed by the names of the parameters in the request body

另外,对于大于100kb的post数据,需要用 Request.BinaryRead

persialee | 园豆:3217 (老鸟四级) | 2009-12-09 00:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册