您的位置:首页 > 产品设计 > UI/UE

.net版ueditor在Repeater中动态生成

2013-10-28 15:33 113 查看
实现方法两种,其中的实现思路主要为找到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);

}

}

}

}

</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",否则会报错误“意外的调用了方法或属性”等错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: