前台代码:<table width="100%">
        <tr>
            <td align="right" style="width: 80px">
                <asp:Label ID="lblTitle" runat="server" Text="标&nbsp;&nbsp;&nbsp;&nbsp;题:"></asp:Label>
            </td>
            <td align="left" style="width: 400px">
                <asp:TextBox ID="txtTitle" runat="server" Width="400px"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td align="right" style="width: 80px" valign="top">
                <asp:Label ID="lblContent" runat="server" Text="内&nbsp;&nbsp;&nbsp;&nbsp;容:"></asp:Label>
            </td>
            <td colspan="3">
                <FCKeditorV2:FCKeditor ID="fckContent" runat="server" DefaultLanguage="zh-cn" Height="240px"
                    Width="100%">
                </FCKeditorV2:FCKeditor>
            </td>
        </tr>
    </table>
    <table width="100%">
        <tr>
            <td align="right" style="width: 80px">
                <asp:Label ID="lblMainPageImg" runat="server" Text="首页图片:" Visible="false"></asp:Label>
            </td>
            <td>
                <asp:RadioButtonList ID="radMainPage" runat="server" RepeatDirection="Horizontal"
                    Style="float: left" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged"
                    AutoPostBack="true" Visible="false">
                    <asp:ListItem Text="是" Value="True"></asp:ListItem>
                    <asp:ListItem Text="否" Value="False" Selected="True"></asp:ListItem>
                </asp:RadioButtonList>
            </td>
        </tr>
        <tr>
            <td align="right" style="width: 80px">
                <asp:Label ID="lblImgUrl" runat="server" Text="图片路径:" Visible="false"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtImgUrl" runat="server" Width="320px" Visible="false"></asp:TextBox>
                
            </td>
        </tr>
    </table>后台代码: protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (radMainPage.SelectedValue.ToString().Equals("True"))
            {
                lblImgUrl.Visible = true;
                txtImgUrl.Visible = true;
            }
            else
            {
                lblImgUrl.Visible = false;
                txtImgUrl.Visible = false;
            }
        }
如果把以上代码放到一个自定义用户控件中并在其他页面引用时,当设置是否首页显示图片时(RadioButtonList 改变时),FCKeditor 中的内容会丢失,如果只在一个页面中显示的话,RadioButtonList 改变时,FCKeditor 中的内容却不会丢失。奇怪了?????????。究竟哪里的问题呢??????

解决方案 »

  1.   

    FCKeditor 一般放到iframe里好些
    FCKeditor 存放内容在客户端控件里,如果页面回发,内容就会丢失
      

  2.   

    我在用户控件中加了UpdatePanel 也不行,在页面中用户控件外还有一个UpdatePanel。这个相当于嵌套在里面了。
     <asp:UpdatePanel runat="server" ID="up" UpdateMode="Conditional">
            <ContentTemplate>
                <table width="100%">
                    <tr>
                        <td align="right" style="width: 80px">
                            <asp:Label ID="lblMainPageImg" runat="server" Text="首页图片:" Visible="false"></asp:Label>
                        </td>
                        <td>
                            <asp:RadioButtonList ID="radMainPage" runat="server" RepeatDirection="Horizontal"
                                Style="float: left" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged"
                                AutoPostBack="true" Visible="false">
                                <asp:ListItem Text="是" Value="True"></asp:ListItem>
                                <asp:ListItem Text="否" Value="False" Selected="True"></asp:ListItem>
                            </asp:RadioButtonList>
                        </td>
                    </tr>
                    <tr>
                        <td align="right" style="width: 80px">
                            <asp:Label ID="lblImgUrl" runat="server" Text="图片路径:" Visible="false"></asp:Label>
                        </td>
                        <td>
                            <asp:TextBox ID="txtImgUrl" runat="server" Width="320px" Visible="false"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtImgUrl"
                                Display="Dynamic" ErrorMessage="图片路径不能为空!">图片路径不能为空!</asp:RequiredFieldValidator>
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
        </asp:UpdatePanel>
      

  3.   

    是不是UpdatePanel 用法不对????
      

  4.   


    这说明你的外边的UpdatePanel过于托大了,它没有那么大能力(来管理本不该刷新的部分),不要把它搞那么大。
      

  5.   

    这次改版之后,csdn的“回复”部分的大bug实在太烂了。但是最烂的还是csdn的态度,竟然宁可烂也不恢复以前状态。
      

  6.   

    另外,我在4楼没有看到用户控件使用啊?奇怪。这是实际的程序吗?
    如果无法刷新,就把UpdatePanel分得细一些。实际上这也会让程序显示快一点。在后台,你可以用代码来刷新一组你需要刷新的UpdataPanel。所以把UpdataPanel分细一些并不会影响什么。
      

  7.   


        <script type="text/javascript">
        function show_Lb_img() {
            var Rbt = document.getElementById("tb_true");
            var Rbf = document.getElementById("tb_false");
            var lblImgUrl = document.getElementById("lblImgUrl");
            var txtImgUrl = document.getElementById("txtImgUrl");
            if (Rbt.checked) {
                lblImgUrl.style.display = "";
                txtImgUrl.style.display = "";
            }
            if (Rbf.checked) {
                lblImgUrl.style.display = "none";
                txtImgUrl.style.display = "none";
            }
            
        }
        </script>
       <table width="100%">
                <tr>
                    <td align="right" style="width: 80px">
                        <asp:Label ID="lblMainPageImg" runat="server" Text="首页图片:" Visible="false"></asp:Label>
                    </td>
                    <td>
                        <input  type="radio" onclick="show_Lb_img()" id="tb_true" name="Rb_show" value="0" runat="server" />是
                        &nbsp;<input type="radio" onclick="show_Lb_img()" id="tb_false" name="Rb_show" value="1" runat="server" checked="true" />否
                    </td>
                </tr>
                <tr>
                    <td align="right" style="width: 80px">
                        <asp:Label style="display: none" ID="lblImgUrl" runat="server" Text="图片路径:"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox style="display: none" ID="txtImgUrl" runat="server" Width="320px"></asp:TextBox>
                    </td>
                </tr>
            </table>