心烦了,不同的.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 %>'> 获取