今天公司的正式環境有個功能不好使,但是測試環境沒有問題,經過和同事的研討,發現應該是我在寫代碼的時候把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 = "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不可見了,瀏覽器同樣可以解析出來。