首页 > 代码库 > Textbox.Visible=False隐藏方式导致的问题

Textbox.Visible=False隐藏方式导致的问题

今天公司的正式环境有个功能不好使,但是测试环境没有问题,经过和同事的研讨,发现应该是我在写代码的时候把Textbox的visible属性设置为false导致的。

当时的需求是需要在发邮件的时候加上“相关说明”,而“相关说明”的内容是由第一个发邮件的人填写的,第二个人在接到邮件以后,登录系统,发送第二封邮件,

邮件的“相关说明”是用第一个人的最后一次写的“相关说明”,自己不写“相关说明”。由于公用一个上传,发邮件页面,并且只有第一个人能够看到“相关说明”的

文本框。因此,我把Textbox的Visible默认设置为false,第一个发邮件的时候再设置成TRUE。

程序在测试环境运行没有问题,然而今天在正式环境运行的时候,却出现了第二个人没有获取到第一个人的“相关说明”。

通过同事的帮忙排查,发现因为Textbox的visible被设置成了false,虽然可以赋值,可能由于不同浏览器的原因,没有解析出来Textbox,无法取值,所以导致了没有相关说明。

同事给出了用div的方法来隐藏和显示

            <div id="mydiv" runat="server" style="display:none;">                <asp:Label ID="LalExplain" Text="相关说明" runat="server" Visible="false" />                <asp:TextBox ID="TxtBoxExplain" runat="server" Width="700px" TextMode="MultiLine"></asp:TextBox>                <asp:Label ID="Label2" runat="server" ForeColor="Red"></asp:Label>            </div>

后台用以下代码来显示

mydiv.Style.Value = http://www.mamicode.com/"display.block";

以下是浏览器解析后的代码

 <div id="mydiv" style="display:none;">                                <textarea name="TxtBoxExplain" rows="2" cols="20" id="TxtBoxExplain" disabled="disabled" class="aspNetDisabled" style="width:700px;">1、信息查询2、系统说明</textarea>                <span id="Label2" style="color:Red;"></span>            </div>

通过这种方法,只是将Textbox不可见了,浏览器同样可以解析出来。

 

Textbox.Visible=False隐藏方式导致的问题