直接用this.Textbox1和 ( (TextBox)FindControl("TextBox1") ).Text有什么区别?
展开全部
前者:在界面以定义的对象.直接使用.如果能直接获取对象,一般则不使用后面的方法.
后者:FindControl从这个函数名称就可以猜到,是在页面循环查找名称与参数相同的控件,然后再转换成相应的类型.因为多了遍历查找与类型转换两个步骤,所以执行效率要比第一种方式低许多.而且还可能引起因类型转换,和FindControl("")==null而引起的错误.这种方式获取对象一般是要在容器控件(窗体也是容器)内的子控件的时候使用.此方法,只能查找到容器控件内的子控件(直属),查不到所属当前控件的子容器内的控件.
后者:FindControl从这个函数名称就可以猜到,是在页面循环查找名称与参数相同的控件,然后再转换成相应的类型.因为多了遍历查找与类型转换两个步骤,所以执行效率要比第一种方式低许多.而且还可能引起因类型转换,和FindControl("")==null而引起的错误.这种方式获取对象一般是要在容器控件(窗体也是容器)内的子控件的时候使用.此方法,只能查找到容器控件内的子控件(直属),查不到所属当前控件的子容器内的控件.
展开全部
在asp.net里,区别不大
但前者是已经知道有这个
后者可能会出现异常,如类型转换异常等
但前者是已经知道有这个
后者可能会出现异常,如类型转换异常等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FindControl最常用的地方是在gridview那种类似容器的控件里面、和masterPage这中有模板页的页面里。
用在普通的页面中根本就没有意义。还不如直接敲上TextBox1来的方便,除非你想写个方法根据控件名字的字符串找那个控件。然后实现对名字类似的控件进行循环控制。比如找TextBox1……TextBox5……,然后对里面的数据进行相同的处理。
不过那样虽然能行,但是实现起来却是个麻烦。
用在普通的页面中根本就没有意义。还不如直接敲上TextBox1来的方便,除非你想写个方法根据控件名字的字符串找那个控件。然后实现对名字类似的控件进行循环控制。比如找TextBox1……TextBox5……,然后对里面的数据进行相同的处理。
不过那样虽然能行,但是实现起来却是个麻烦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询