1、我想知道commandname和commandargument在使用上有什么区别,好像都是一样的啊,传给command事件,由command事件来判定是哪个控件引发的嘛
2、如果我asp:checkbox的autopostback不设置为true,那么当我改变选项的时候,能不能得到哪个选项是被选择了的?
问这个问题的背景是原来我在写ASP的时候,经常碰上要在本页未提交之前得到checkbox,radiobox等等一类html控件的值的问题,而那个时候我对doucment.all什么的一类使用上又不熟悉,所以觉得很麻烦,不知道在asp.net中使用了WEB控件以后这个问题有没有解决
3、ASP:button有两个类型,提交和命令,而它有四个主要的函数(应该是吧,我菜鸟,说错了请指正)onclick,click,oncommand和command,那么哪个是提交的函数,哪个又是命令的函数呢?
4、我看过几本参考书,好像asp.net的控件有三种,html控件,input控件,web控件(当然input控件也是包含在html控件中的,但因为使用上还是有些不同,所以我把其分成为三种类型),我想知道这些控件中,哪些是可以做客户端控件的?另外客户端控件是不是在服务器端不为其编译和服务,而是直接发往客户端,而由客户端的JS或什么写的函数来进行处理的?
5、对于HTML控件,他也有属性和方法,那么他们的属性和方法是不是也可以像一般的WEB控件一样,通过加句柄而在.cs的后台文件中使用呢?
6、对于request对象,这相在ASP中非常重要的对象,似乎在asp.net中成了一个辅助对象。因为asp.net是事件驱动的,而且form中的action只能在本页,处理是由本form的后台.cs中各函数来处理,而不像asp中可以转向另外一个专门处理页面,那么现在request还有什么用呢?我原来在一本书中曾经看到过,依然有.aspx文件使用request.form("xxx"),我看了一下,这个xxx是一个input控件的值,那么我想问,是不是input控件的值还是要通过客户提交并且通过request来获取?那么html控件和web控件的值呢?他们值的获取是否也依赖于request和网页提交?
7、这个问题其实是从第3个问题中分出来的,就是我想确认一下,asp:button是否既有click又有onclick方法?html控件中的button控件是不是只有onclick方法?
8、click和command方法有什么区别?好像都是单击产生的事件,具体分工有什么不同吗?
9、是不是form中的所有控件都要runat="server"呵呵,暂时就这么多,希望各位高手帮忙,和我同是入门级选手的也可以与本人一同探讨探讨

解决方案 »

  1.   

    偶悄悄的说一个:
    9、是不是form中的所有控件都要runat="server"
    ==
    你需要在服务器端进行交互处理的控件,就放在服务器端执行;否则,就不需要放在服务器端。
      

  2.   

    并不是form中的所有控件都要runat="server",加上这句话是让他变成web控件了,不加就是普通的html控件。从design页面可以看到他们的样子是不同的(web控件左上角有个绿色标记)。
      

  3.   

    2、如果我asp:checkbox的autopostback不设置为true,那么当我改变选项的时候,能不能得到哪个选项是被选择了的?
    问这个问题的背景是原来我在写ASP的时候,经常碰上要在本页未提交之前得到checkbox,radiobox等等一类html控件的值的问题,而那个时候我对doucment.all什么的一类使用上又不熟悉,所以觉得很麻烦,不知道在asp.net中使用了WEB控件以后这个问题有没有解决
    ==
    不建议使用过多的POSTBACK;
    对于你的checkbox控件,你完全可以在页面提交前进行判断处理;而不需要每次点击它都进行即时处理吧?偶公司一个新手的代码,就因为POSTBACK太多,被经理PASS掉了。
      

  4.   

    5、对于HTML控件,他也有属性和方法,那么他们的属性和方法是不是也可以像一般的WEB控件一样,通过加句柄而在.cs的后台文件中使用呢?==
    所有的HTML控件,你都可以在代码中通过Attributes访问它的HTML属性。比如:
    this.btnCancel.Attributes["onclick"] = "javascript:history.back();";
      

  5.   

    我就是说如果没有提交,那么我到底选择了哪个选项服务器怎么知道呢?原来是用doucument.all来得到,现在也要用这种方法来得到吗?
      

  6.   

    是不是form中的所有控件都要runat="server"
    答from中的控件不一定都要runat="server"也可以使用html控件但是HTML控件无法在ASP.NET中获得焦点只能用JAVASCRIPT来操作,如果把HTML控件改为runat="server"即可以获得焦点也可以使用JAVASCRIPT操作.
      

  7.   

    upupupupupupupupupupupupupupupupupupupupupupupupupupupupup
      

  8.   

    好久没有人来回我的这个帖子了,干脆我自己回了吧,给后来者一点借鉴,呵呵
    1、其实对于后台来说没有什么区别,我用得多得是在DataGrid或DataList中的ItemCommand事件中,用commandname来判断是哪个按钮产生的动作,而commandargument一般是用来传递这个控件相关参数
    2、可以,可以直接在后台用if(radioid.check)来判断
    3、到现在为止我都很少用到提交按钮,一般都是用命令按钮,凡是加on的好像都是要在control.attribute.add()里面用的
    4、html控件和input控件是可以做为服务器端和客户端两用的,而web控件只能用做服务器端;客户端控件如果加了runat="server"在服务器端还是会编译的,如果不加就只在客户端执行。
    5、可以,但是要在HTML控件的属性中加入runat="server"标签
    6、在后来的编程过程中,反面没有遇到这个关于form的问题了,因为如果要调用input的值,可以直接在前台加runat="server",后台直接用控件.value就可以直接调用了,确实用不上request对象,要是有用上的,就是一个页面通过地址传值方式把值传到另一个页面时用request来接收。所有的三类控件的值都不依赖于request和网页提交。
    7、是的,但是click方法,是直接在属性里面会有调用方法的,在后台实现,而ONCLICK一般都是做为控件的注册函数来用的,用前台的JAVASCRIPT来实现。
    8、click是单个事件点击,command可以有多个控件点击但集中用一个command函数进行处理。click函数是针对某一个单一控件的,而command好像是可以针对多个控件的
    9、不一定,但是form一定要有runat="server"属性,否则后台和前台会连接不上