2

我有一个带有文本区域、两个列表框和一个按钮的对话框弹出窗口。通过在第一个列表框中选择一个值并按下按钮“>”,所选值将传递到第二个列表框。这是用 asp.net ajax 完成的。

<td>
    <div align="center">
           <textarea style="height:50px; overflow:hidden;";rows="20"
              cols="40"
              id="editor1" 
              class="tinymce">
           </textarea>
    </div>
</td>

我将 2 个列表框和按钮放在了 asp.net 上传面板之间。像这样:

<td>
                        <asp:UpdatePanel runat="server" id="updatePanel1">
                            <ContentTemplate>
                            <table width="100%" align="left">
                                            <tr>
                                                <td colspan="5">
                                                    <hr align="left" style="width:95%" />
                                                </td>
                                            </tr>
                                            <tr>
                                                <td valign="top">
                                                    <cc1:SWCListBox
                                                        ID="SWCListBox1" 
                                                            runat="server" 
                                                            Width="100"
                                                            SelectionMode="Single" 
                                                            CssClass="VW1">

                                                        </cc1:SWCListBox>
                                                </td>
                                                <td 
                                                    valign="top" 
                                                    width="50" 
                                                    align="center">
                                                    <cc1:SWCButton
                                                        Text=" > " 
                                                        ID="SWCBtnAddValue" 
                                                        CssClass="VW1 VWButton" 
                                                        runat="server" 
                                                        ToolTip="Add to list"
                                                        OnClick="AddValue_Click"
                                                        CausesValidation="false"
                                                        />

                                                <td valign="top">
                                                            <cc1:SWCListBox
                                                                id="SWCListBox2"
                                                                CssClass="VW1" 
                                                                runat="server" 
                                                                Width="100" 
                                                                SelectionMode="Single"
                                                        />

                                                </td>
                                                </tr>
                                        </table>
                                      </ContentTemplate>
                                    </asp:UpdatePanel>

问题是,当我在 textarea 中输入内容并进行异步回发时,输入的文本会消失。

如何将 textarea 值保留在异步回发中?谢谢你。

4

1 回答 1

1

这个问题是因为你使用UpdatePanel,而textarea不是asp.net控件。你有两个解决方案。

1)通过放置 run="server"(或)使其成为 asp.net 控制
2)手动将回发值放置为:

<div align="center">
       <textarea style="height:50px; overflow:hidden;";rows="20"
          cols="40"
          id="editor1" 
          name="editor_1"
          class="tinymce">
       <asp:Literal runat="server" id="txtEditor1" />
       </textarea>
</div>

和后面的代码

txtEditor1.Text = Server.HtmlEncode(Request.Form["editor_1"].ToString());

(因为您使用 UpdatePanel 重要的是使用 Literal 添加此值而不是使用<%=%>,否则它会引发错误。

于 2012-05-28T10:09:37.567 回答