repeaterjq如何实现数据绑定定新思路,怎么实现?

&&& 如果刚从ASP过渡到ASPX的程序员,大都会抱怨ASPX生成的客户端元素的ID,太长了!如果要在客户端脚本中使用,如利用:
document.getElementById('Repeater1_ctl00_Button1')
这一类的方式来引用,非常不方便.&&&
&&& 想像一下,你想生成如上的界面,然后在鼠标在Button上mousemove时,改变其前面对应的文本框中的文字,格式为: 'hello world ' + 该Button的ID + '--' + new Date().valueOf()&&&&先不要管,这个有什么用,在什么地方用, 首先,你如何实现呢?&& 我的实现方法就是如标题所言,用服务器控件来对付它们,只要我们来选择一个合适的思路:假设我们有一个服务器控件,通过给控件指定两个相关联的控件(这里就是Buton和TextBox),我们在客户端为这两个控件,分别设置自定义的属性来直接指向另一个控件. && 如果有了另一个控件的引用,我们就可以在button的实例中,直接得到相关联的TextBox的引用,而绕开getElementById().&& 先看一下该服务端控件的使用:&&&
&&&&&&div&&&&&&&&&&asp:Repeater&ID="Repeater1"&runat="server"&&&&&&&&&&&&&&ItemTemplate&&&&&&&&&&&&&&&&&&asp:TextBox&ID="TextBox1"&runat="server"&Width="445px"&&/asp:TextBox&&&&&&&&&&&&&&&&&&asp:Button&ID="Button1"&runat="server"&Text="Button"&onmousemove="return&button_onmousemove(this,event)"&/&&&&&&&&&&&&&&&&&&cc1:WebControlLinker&ID="WebControlLinker1"&runat="server"&WebControlFirst="Button1"&WebControlSecond="TextBox1"&/&&&&&&&&&&&&&&/ItemTemplate&&&&&&&&&&/asp:Repeater&&&&&&&&&&&&&&/div&&
&&& 注意一下cc1:WebControlLinker&的WebControlFirst="Button1"&WebControlSecond="TextBox1"&&我们设置了两关联的控件.&&& 它们会在页面输出时,生成下面的代码:页面呈现:
&&&&&div&&&&&&&&&&&&&&&&&&&&&&&&&&input&name="Repeater1$ctl00$TextBox1"&type="text"&id="Repeater1_ctl00_TextBox1"&style="width:445"&/&&&&&&&&&&&&&&&&&&input&type="submit"&name="Repeater1$ctl00$Button1"&value="Button"&id="Repeater1_ctl00_Button1"&onmousemove="return&button_onmousemove(this,event)"&/&&&&&&&&&&&&&&&&&&span&id="Repeater1_ctl00_WebControlLinker1"&&/span&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&input&name="Repeater1$ctl01$TextBox1"&type="text"&id="Repeater1_ctl01_TextBox1"&style="width:445"&/&&&&&&&&&&&&&&&&&&input&type="submit"&name="Repeater1$ctl01$Button1"&value="Button"&id="Repeater1_ctl01_Button1"&onmousemove="return&button_onmousemove(this,event)"&/&&&&&&&&&&&&&&&&&&span&id="Repeater1_ctl01_WebControlLinker1"&&/span&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&input&name="Repeater1$ctl02$TextBox1"&type="text"&id="Repeater1_ctl02_TextBox1"&style="width:445"&/&&&&&&&&&&&&&&&&&&input&type="submit"&name="Repeater1$ctl02$Button1"&value="Button"&id="Repeater1_ctl02_Button1"&onmousemove="return&button_onmousemove(this,event)"&/&&&&&&&&&&&&&&&&&&span&id="Repeater1_ctl02_WebControlLinker1"&&/span&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&input&name="Repeater1$ctl03$TextBox1"&type="text"&id="Repeater1_ctl03_TextBox1"&style="width:445"&/&&&&&&&&&&&&&&&&&&input&type="submit"&name="Repeater1$ctl03$Button1"&value="Button"&id="Repeater1_ctl03_Button1"&onmousemove="return&button_onmousemove(this,event)"&/&&&&&&&&&&&&&&&&&&span&id="Repeater1_ctl03_WebControlLinker1"&&/span&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&input&name="Repeater1$ctl04$TextBox1"&type="text"&id="Repeater1_ctl04_TextBox1"&style="width:445"&/&&&&&&&&&&&&&&&&&&input&type="submit"&name="Repeater1$ctl04$Button1"&value="Button"&id="Repeater1_ctl04_Button1"&onmousemove="return&button_onmousemove(this,event)"&/&&&&&&&&&&&&&&&&&&span&id="Repeater1_ctl04_WebControlLinker1"&&/span&&&&&&&&&&&&&&&&&&&&&&&&&&/div&
和下面的关联引用用的脚本:&&
&script&type="text/javascript"&&!--document.getElementById('Repeater1_ctl00_Button1').setAttribute('TextBox1',document.getElementById('Repeater1_ctl00_TextBox1'));document.getElementById('Repeater1_ctl00_TextBox1').setAttribute('Button1',document.getElementById('Repeater1_ctl00_Button1'));document.getElementById('Repeater1_ctl01_Button1').setAttribute('TextBox1',document.getElementById('Repeater1_ctl01_TextBox1'));document.getElementById('Repeater1_ctl01_TextBox1').setAttribute('Button1',document.getElementById('Repeater1_ctl01_Button1'));document.getElementById('Repeater1_ctl02_Button1').setAttribute('TextBox1',document.getElementById('Repeater1_ctl02_TextBox1'));document.getElementById('Repeater1_ctl02_TextBox1').setAttribute('Button1',document.getElementById('Repeater1_ctl02_Button1'));document.getElementById('Repeater1_ctl03_Button1').setAttribute('TextBox1',document.getElementById('Repeater1_ctl03_TextBox1'));document.getElementById('Repeater1_ctl03_TextBox1').setAttribute('Button1',document.getElementById('Repeater1_ctl03_Button1'));document.getElementById('Repeater1_ctl04_Button1').setAttribute('TextBox1',document.getElementById('Repeater1_ctl04_TextBox1'));document.getElementById('Repeater1_ctl04_TextBox1').setAttribute('Button1',document.getElementById('Repeater1_ctl04_Button1'));//&--&&/script&
&&& 有了上面的东西,我们要执行的脚本就可以简单的写成这样:
&head&&title&&&&&Untitled&Page&/title&&&&&&script&type="text/javascript"&&&&&&&&&function&button_onmousemove(obj,e)&&&&&&&&{&&&&&&&&&&&&obj.TextBox1.value&=&"hello&world&"&+&obj.TextBox1.Button1.id&+&'--'&&+&new&Date().valueOf();;&&&&&&&&}&&&&&/script&&/head&
&& obj.TextBox1.value 这种方式,访问,也挺爽吧?附上求例下载:
阅读(...) 评论()repeater数据绑定新思路,怎么实现?
[问题点数:50分]
本版专家分:0
结帖率 58.82%
CSDN今日推荐
本版专家分:451823
2017年 总版技术专家分年内排行榜第十2013年 总版技术专家分年内排行榜第八
2017年2月 总版技术专家分月排行榜第三
2018年7月 .NET技术大版内专家分月排行榜第一2018年6月 .NET技术大版内专家分月排行榜第一2018年1月 .NET技术大版内专家分月排行榜第一2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2018年4月 .NET技术大版内专家分月排行榜第二2018年3月 .NET技术大版内专家分月排行榜第二2017年12月 .NET技术大版内专家分月排行榜第二2017年9月 .NET技术大版内专家分月排行榜第二2017年7月 .NET技术大版内专家分月排行榜第二2017年6月 .NET技术大版内专家分月排行榜第二2016年12月 .NET技术大版内专家分月排行榜第二2016年9月 .NET技术大版内专家分月排行榜第二2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
本版专家分:451823
2017年 总版技术专家分年内排行榜第十2013年 总版技术专家分年内排行榜第八
2017年2月 总版技术专家分月排行榜第三
2018年7月 .NET技术大版内专家分月排行榜第一2018年6月 .NET技术大版内专家分月排行榜第一2018年1月 .NET技术大版内专家分月排行榜第一2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2018年4月 .NET技术大版内专家分月排行榜第二2018年3月 .NET技术大版内专家分月排行榜第二2017年12月 .NET技术大版内专家分月排行榜第二2017年9月 .NET技术大版内专家分月排行榜第二2017年7月 .NET技术大版内专家分月排行榜第二2017年6月 .NET技术大版内专家分月排行榜第二2016年12月 .NET技术大版内专家分月排行榜第二2016年9月 .NET技术大版内专家分月排行榜第二2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
本版专家分:451823
2017年 总版技术专家分年内排行榜第十2013年 总版技术专家分年内排行榜第八
2017年2月 总版技术专家分月排行榜第三
2018年7月 .NET技术大版内专家分月排行榜第一2018年6月 .NET技术大版内专家分月排行榜第一2018年1月 .NET技术大版内专家分月排行榜第一2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2018年4月 .NET技术大版内专家分月排行榜第二2018年3月 .NET技术大版内专家分月排行榜第二2017年12月 .NET技术大版内专家分月排行榜第二2017年9月 .NET技术大版内专家分月排行榜第二2017年7月 .NET技术大版内专家分月排行榜第二2017年6月 .NET技术大版内专家分月排行榜第二2016年12月 .NET技术大版内专家分月排行榜第二2016年9月 .NET技术大版内专家分月排行榜第二2016年6月 .NET技术大版内专家分月排行榜第二2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
本版专家分:1980
匿名用户不能发表回复!
其他相关推荐repeater数据绑定新思路,怎么实现?_百度知道
repeater数据绑定新思路,怎么实现?
页面中放一个repeater控件,然后对repeater控件进行数据绑定。不在html使用&%#Eval(&字段名&)%&方法来绑定,而是想在后台代码中实现数据绑定。以下方法,运行最终还是原原本本显示&%#...
页面中放一个repeater控件,然后对repeater控件进行数据绑定。不在html使用&%#Eval(&字段名&)%&方法来绑定,而是想在后台代码中实现数据绑定。以下方法,运行最终还是原原本本显示&%#Eval(&manager&)%&这一字符串。该如何在后台指定绑定字段?用的是Repeater1.DataBind()方法,不想在后台用datarow来读取记录然后赋值给一个全局变量,再绑定到前台中这种方法。前台代码:[code]
&asp:Repeater ID=&Repeater1& runat=&server&&
&HeaderTemplate&&/HeaderTemplate&
&ItemTemplate&&/ItemTemplate&
&FooterTemplate&&/FooterTemplate&
&/asp:Repeater&[/code]后台代码:[code]
TemplateBuilder tablelist = new TemplateBuilder();
tablelist.AppendLiteralString(&&%=Eval(\&manager\&)%&&);
Repeater1.ItemTemplate =
//-----以下是repeater控件的数据绑定-----//
Repeater1.DataSource = bll.ExecuteDataSet(ad);
Repeater1.DataBind();[/code]
&ItemTemplate&&/ItemTemplate&
&FooterTemplate&&/FooterTemplate&
&/asp:Repeater&[/code]后台代码:[code]
TemplateBuilder tablelist = new TemplateBuilder();
tablelist.AppendLiteralString(&&%=Eval(\&manager\&)%&&);
Repeater1.ItemTemplate =
//-----以下是repeater控件的数据绑定-----//
Repeater1.DataSource = bll.ExecuteDataSet(ad);
Repeater1.DataBind();[/code]
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:12056
获赞数:8137
参与团队:
这种问题最好的解决办法不是显示问题,而是数据库设计问题,既然你有另外的关键字,那就应该在数据库中体现,而不是显示的时候再处理。这样会很麻烦。如果数据库结构确实没法改变,那也给你提供一种思路,就是在SQL语句上想办法,如果所有的值都是xin1对应1000,2对应2000,这种比较有规律的,那就很容易处理了,比如 select itemid , replace(itemid + '000','xin','')
这只是思路,具体的SQL语句,你可以自己写一下
为你推荐:
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 repeater是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信