2012-06-07 57 views
1

我有一個只讀的文本框,它有一個必需的驗證程序附加到它。此文本框只能使用其他控件進行填充。Asp.Net驗證器和只讀文本框

問題是,只讀文本框不會存儲它們的值並在回發時將其恢復,所以這會導致驗證器在每次回發後都會出現問題。我知道有辦法強制它存儲價值,但我實際上不希望它存儲它。

反正有過去嗎?

編輯:這是產生這些問題的控制:

  <li class="fakeUploadLi"> 
       <asp:Label CssClass="lbl" ID="lb" runat="server" Text="Image:"></asp:Label> 
       <div class="fakeupload"> 
        <asp:TextBox runat="server" ID="tbFakeupload" Enabled="false" /> 
       </div> 
       <asp:FileUpload ID="fuImage" runat="server" CssClass="fileUpload" onchange="this.form.ctl00$cphAdmin$tbFakeupload.value = this.value;" /> 
       <asp:RequiredFieldValidator ValidationGroup="newImage" runat="server" ControlToValidate="tbFakeupload" 
        ErrorMessage="Please select an image first.">*</asp:RequiredFieldValidator> 
      </li> 

它是在原來的文件上傳HTML控件覆蓋。請注意,如果我關閉只讀(或啓用,嘗試兩種)問題消失。

+0

你爲什麼不嘗試tbFakeupload'的'值存儲在隱藏'和field'在'PostBack'後恢復它永遠不會失去它的價值,驗證器不會觸發 –

回答

3

試試這個:

protected void Page_Load(object sender, EventArgs e) 
{ 
TextBox1.Attributes.Add("readonly", "readonly"); 
} 

http://www.codeproject.com/Articles/33649/ViewState-and-Readonly-Property-of-Textbox

+0

你讀過我的問題了嗎?我說我不想存儲價值。我已經知道這個訣竅,我希望它不會在每個帖子後面出現。 – TheGateKeeper

+0

然後可能會添加一些更多的信息,你在做什麼,在什麼情況下你的文本字段位於,我已經用驗證等自己複製你的問題,它不會爲我啓動。 – Thousand

+0

只要我關閉只讀,我的問題就會消失。真奇怪。我在問題中添加了控件的html。 – TheGateKeeper

0

嘗試將readonly屬性更改爲Enabled = "false"