首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

心烦了,不同的.NET配备DataList中的绑定控件生成的HTML控件ID还不同啊

2012-11-04 
心烦了,不同的.NET配置DataList中的绑定控件生成的HTML控件ID还不同啊!!!用下面的DataList绑定一个TextBox

心烦了,不同的.NET配置DataList中的绑定控件生成的HTML控件ID还不同啊!!!
用下面的DataList绑定一个TextBox
<asp:DataList RepeatColumns="5" ID="DLChinese" Visible="false" runat="server" CellPadding="0" CellSpacing="40" ItemStyle-HorizontalAlign="left">
  <ItemTemplate>
  <asp:TextBox runat="server" ID="txtInput" /></span>
  </ItemTemplate>
  <ItemStyle HorizontalAlign="Left" />
  </asp:DataList>

页面执行后:
在空间服务器上是这样的HTML代码
<input name="DLChinese$ctl00$txtInput" type="text" id="DLChinese_txtInput_0" />
在我的本机上是这样的HTML代码
 <input name="DLChinese$ctl05$txtInput" type="text" id="DLChinese_ctl05_txtInput" />

FUCK,ID变了!!!!!
那不是客户端用到javascript getElementById函数的代码全部都出错了,怎么会这样?!!

[解决办法]
是不用了。 模板页的喃。

你可以用jquery。 获取ID 三。 

很方便的。

EG: $("*txtInput")
[解决办法]
建议LZ还是用jquery来操作你的asp.net控件
jQuery.clientID('txtInput'); 这个用来直接根据ID来获取控件
当然LZ也可以用
$(".txtInput") 该txtinput是你的控件的class名称

还有LZ要记住,ID在web页面上都是唯一的,像datalist控件循环输出来的ID当然要不同了,为了保证了能获取这种 还是推荐使用class来获取
[解决办法]
DataList 会显示很多行,每行都有input ,你直接getElementById,你觉得应该得到哪一个呢?

传id,使用txtInput.ClientID从后台传
[解决办法]
可以在后台获取 input的值,要么 document.getElementById('<%=TextBox1.ClientID %>'> 获取
[解决办法]
document.getElementById('<%=TextBox1.ClientID %>'> 获取

热点排行