Wednesday, April 08, 2009

DNN中textbox等控件的ID在页面加载完成后,改变的问题

DNN中textbox等控件的ID在页面加载完成后,改变的问题

_dnnaaron(516150980) 11:37:04
其实就是一个图片新闻的东西
_dnnaaron(516150980) 11:37:37
以flash的方式显示
花纯春_DNN(21262868) 11:37:59
flash能找到吗?
_dnnaaron(516150980) 11:38:53
没有flash,就是和迅雷首页的那个图片新闻类似的东西
毕成栋_DNN(147607326) 11:40:01
to 花纯春:好像控件名有类似clientId,clientName的属性
花纯春_DNN(21262868) 11:40:20
http://www.cnblogs.com/meta/archive/2008/04/24/1169172.html
这个变换模块,我也有写的,
_dnnaaron(516150980) 11:41:00
好的,我看看那片文章,好像听详细的
毕成栋_DNN(147607326) 11:41:32
前面上厕所去了没看到
_dnnaaron(516150980) 11:42:43
现在看看这篇文章
花纯春_DNN(21262868) 11:42:44
毕成栋_DNN(147607326) 11:40:01
to 花纯春:好像控件名有类似clientId,clientName的属性
===
3Q.
在DNN的ASCX中的,某textbox,在页面加载完成后,变成了dnnctl355XXXX,然后才是textbox的ID,每次添加模块后, 又会变,比如dnnctl356XXX,如何使用您说的clientID?
谢谢,最好能给个这方面的文章,或者关键词,我会找找看。再次感谢
_dnnaaron(516150980) 11:42:51
花纯春_DNN(21262868) 11:40:20
http://www.cnblogs.com/meta/archive/2008/04/24/1169172.html
这个变换模块,我也有写的,


===
有篇文章:
关于ClientID的使用我遇到一下问题:

获取由 ASP.NET 生成的服务器控件标识符。

问题一: 用户控件的页面JavaScript中需要使用Asp.net的控件ID,出现不一致。
问题二:母版页的子页面JavaScript中需要使用Asp.net的控件ID,出现不一致。
解决办法:
document.getElementById("<%=TextBox1.ClientID%>").value="1234567";
此代码可以在客户端完成对服务器端控件的访问,由于ASP.NET会为把服务器端控件在客户端的呈现生成不同的名称,所以此功能比较有用获取。

注意采用此解决办法的前提: Asp.net的控件为静态控件(通过工具添加的控件)

问题三: 动态创建控件的ClientID的获得存在:不能在页面中采用"<%=TextBox1.ClientID%>".方法获得(不能的方法,因为控件是动态创建的);也不能在页面脚本中采用TextBox1.ClientID的方法获得(获得的ID是不正确的)。
解决办法:
(CitySpecProductScheduledControl.ascx.cs代码片段 )
TextBox text = new TextBox();
text.MaxLength = 12;
text.Columns = 12;
text.Text = DateTime.Now.ToShortDateString();
text.ID = "dateId";
text.Attributes.Add("onclick", "calendar()");
text.Attributes.Add("class", "text");

HtmlImage dateimg = new HtmlImage();
dateimg.Src = "../CommonImages/cal.gif";
string js = string.Format("calendar({0}_{1})",this.ClientID, text.ClientID); //关键代码,按照客户端ClientID的产生规则手工生成。
dateimg.Attributes.Add("onclick", js);

以上解决办法经过1个小时的研究解决,并进行了测试没有问题

No comments:

Search This Blog

Followers