.net版ueditor在Repeater中动态生成

来源:互联网 发布:it程序员面试自我介绍 编辑:程序博客网 时间:2024/06/10 11:18
实现方法两种,其中的实现思路主要为找到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",否则会报错误“意外的调用了方法或属性”等错误