日期:2014-05-18  浏览次数:20496 次

如何从 runat=server 的form中获得html控件的值??
我用request.from[ "控件名 "]不管用,大家还有什么好的方法么?
由于form会用到服务器端空间所以还不能把   runat=server   去掉,下面是一段类似的代码:
前台     <script>
            function   check()
            {
                if(document.getElementById( 'name ').value.length==0)
                    return   false;
                else
                    return   true;
            }
        </script>

        <form   runat=server   >
        用户名: <input   id= "name "   type= "text "   />
        <asp:Button   ID= "Button1 "   runat= "server "   OnClick= "Button1_Click "   Text= "Button "     OnClientClick= "return   Check() "/>
        </form>

后台   protected   void   Button1_Click(object   sender,   EventArgs   e)
          {
                string   name   =   Request.Form[ "name "].toString();//就这块有问题,获得不到值
                Response.Redirect( "regResult.aspx?name "+name);
          }

        同志们帮解决一下   什么方法都可以   感激不尽

------解决方案--------------------
Request.Form 取的是name属性值
用户名: <input id= "name " type= "text " name= "name " />
就可以了

自己手打HTML的吧
如果是拖控件,id和name都会自动生成,并且值相等
------解决方案--------------------
要这样的呀 <input id= "name " type= "text " name= "name " />

------解决方案--------------------
在cs中是不能用Request.form的
================================
是可以用的
只是被ViewState机制替换了一部分,变得更加的方便
------解决方案--------------------
request.from[ "控件名 "]---控件名是该控件name属性,不过这样有点asp的风格了,还不如用textbox了

function check()
{
if(document.getElementById( 'name ').value.length==0)
return false;
else
return true;
}一样的也可以用这个方法
------解决方案--------------------
加上name= " " ms老说ID取代name,后来发现很多地方没有name就是不行
------解决方案--------------------
如果你打算动态注册一个javascript函数,例如里边的客户端id使用ClientID属性动态取得的,或者函数名动态产生(面的跟页面什么对象意外重复),应该使用在服务器端字符串里产生然后使用 RegisterStartupScript 动态输出到浏览器端,不要在设计器上写死。