实现方法两种,其中的实现思路主要为找到TextBox的ClientID,再用UE.getEditor(ClientID)加载编辑器:
1、
先在页面Repeater中动态生成TextBox,做为编辑区域,页面加载完成后,根据页面Repeater嵌套方式及页面布局,通过写js方法,查找到编辑区域TextBox,再给相应的TextBox添加属性UE.getEditor(id),生成了编辑器。其中,
TextBox必须设置属性
TextMode="MultiLine"。
2、在Repeater的ItemBound事件中,查找到TextBox控件,得到其ClientID,存放到变量中,或放在隐藏域Hidden中,再在js中处理,例如:
<script type="text/javascript">
window.onload = function () {
var hidAllStr = document.getElementById("<%=hiddenl.ClientID %>").value;
if (hidAllStr != "") {
var arr = hidAllStr.split(",");
for (var i = 0; i < arr.length; i++) {
if (arr[i] != "") {
var tx = document.getElementById(arr[i]);
UE.getEditor(tx.id);
}
}
}
if (hidAllStr != "") {
var arr = hidAllStr.split(",");
for (var i = 0; i < arr.length; i++) {
if (arr[i] != "") {
var tx = document.getElementById(arr[i]);
UE.getEditor(tx.id);
}
}
}
}
</script>
--------页面中正常使用ueditor方式:
<asp:TextBox ID="ck1" TextMode="MultiLine" runat="server" Height="400px" Width="950px"></asp:TextBox>
<script type="text/javascript">
UE.getEditor("ck1");
</script>
-------在repeater中,则不能像以上方式使用,应为:
//页面
<asp:Repeater ID="rp" runat="server">
<HeaderTemplate>
<table
id="tbRpF" style=" width:100%;">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# Container.ItemIndex %>
</td>
<td>
<%# Eval("#")%>
</td>
<td>
<asp:TextBox ID="ck1" TextMode="MultiLine" runat="server" Height="400px" Width="950px"></asp:TextBox>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
//js
<script type="text/javascript">
window.onload = function () {
var tb = document.getElementById("tbRpF"); //repeater
for (var i = 0; i < tb.rows.length; i++) {
var tbx = tb.rows[i].cells[2].firstChild; //找到tbF
UE.getEditor(tbx .id);
}
}
</script>
需要注意的问题:做为编辑器的TextBox必须设置属性:TextModel="MultiLine",否则会报错误“意外的调用了方法或属性”等错误