Ajax 做控件的动态生成。。。
现有自定义用户控件(包含一个Lable、一个TextBox、一个DropDownList...)点击添加按钮后,在其下生成一个同样的UserControl但要有唯一的ID...
现有自定义用户控件(包含一个Lable、一个TextBox、一个DropDownList...)点击添加按钮后,在其下生成一个同样的UserControl
但要有唯一的ID,用js的appendnote不能生成唯一的id。。。
问题补充:1.只是想动态生成usercontrol内的控件,也可以不用自定义控件,但生成后要遍历每个生成的行,有没有其他办法? 展开
但要有唯一的ID,用js的appendnote不能生成唯一的id。。。
问题补充:1.只是想动态生成usercontrol内的控件,也可以不用自定义控件,但生成后要遍历每个生成的行,有没有其他办法? 展开
2个回答
展开全部
可以生成随机ID嘛
var randomid=Math.random().toString().replace('.','');
当然啦
还可以更好一些, 例如混合当前时间数等等, 可以让出现重复ID的可能性更小
我给你个方案:
所有生成项的点击事件什么的都指向一个函数
所有生成项全部放置在一个容器内. 什么都行. 最好是只出现一次的标签
可以自己胡编一个标签, 例如<RuntimeControls></RuntimeControls>
在那个函数里用event.srcElement获得用户在哪个控件上触发了事件.
顺着那个srcElement有的是方法可以获得什么标签阿等等的东西.
(例如, 点击按钮叫"button_282874761", 对应生成的文本框叫"txtbox_282874761" 就可以很轻松的由按钮找到文本框)
最后要取得所有数据的时候, 用document.getElementsByTagName获得
被动态生成的控件的容器 (例如 document.getElementsByTagName('E491')[0])
然后遍历其之内所有的控件, 取出数据.
var randomid=Math.random().toString().replace('.','');
当然啦
还可以更好一些, 例如混合当前时间数等等, 可以让出现重复ID的可能性更小
我给你个方案:
所有生成项的点击事件什么的都指向一个函数
所有生成项全部放置在一个容器内. 什么都行. 最好是只出现一次的标签
可以自己胡编一个标签, 例如<RuntimeControls></RuntimeControls>
在那个函数里用event.srcElement获得用户在哪个控件上触发了事件.
顺着那个srcElement有的是方法可以获得什么标签阿等等的东西.
(例如, 点击按钮叫"button_282874761", 对应生成的文本框叫"txtbox_282874761" 就可以很轻松的由按钮找到文本框)
最后要取得所有数据的时候, 用document.getElementsByTagName获得
被动态生成的控件的容器 (例如 document.getElementsByTagName('E491')[0])
然后遍历其之内所有的控件, 取出数据.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询