露雨城市-南京.NET爱好者
主要讨论的为C#,ASP.NET,Sql Server2005,包括VSTS 2005的相关工具和功能。
我今天在做例子的时候,在datalist中的模板列中加了两个textbox,然后进行绑定,因为我又放了一个日历控件,所以为了客户端不刷新,我就加了ajax控件,然后把日历控件拖到ajax控件中UpdatePanel中.

结果我发现日历控件直接暴露在当前的Page实例中了,也就是说可以直接使用Calendar1.SelectedDate来得到它的值了.而在之前都是要通过FindControl("Calendar1")来实现的.

可是奇怪的事发生了,我接着用了FindControl("TextBox2")的方法,想得到第二个广本框的对象引用,然后给它赋上日历控件当前选择的日期值.因为我是在日历控件的onSelectionChanged事件中写的,所以怎么也没得到值.
我发现明明已经得到文本框的对象引用了,可是赋值无效.我猜想是UpdatePanel的问题,于是我把TextBox2也放到了UpdatePanel中来,结果可以了,而且TextBox2也直接暴露出来了.

那我在onSelectionChanged中直接写TextBox2.Text = Calendar1.SelectedDate.ToShortDateString();就行了.

方便是方便了,不过不知道这是好还是坏,因为我不明白这里面的原理,我接触vs2005的ajax控件也没多久,所以我想了解的深入一点,请高手能够指教这里的原因,以及暴露控件ID的原理或更多内容,谢谢.

想先放在首页几天,得到答案后,我就会自动取消放在首页的,请dudu支持,谢谢.
posted on 2007-08-08 17:33  露雨城市.NET2.0和Sql Server 2005开发研究  阅读(599)  评论(1编辑  收藏  举报