2014-08-27 240 views
0

我有一些用戶希望在電子郵件模板中包含付款的截止日期。該電子郵件模板將定期發送給在特定時間段內未支付的用戶,直到達到截止日期爲止,這意味着電子郵件將不會被髮送出去。管理員可以根據需要將截止日期更改爲將來的日期,並且電子郵件將自動重新開始。防止用戶更改asp.net文本框中的某些文本

管理員還可以編輯電子郵件模板,這是我的問題出現的地方。當他們加載電子郵件模板時,他們當然也能夠查看,更改或刪除截止日期。如果他們更改格式或刪除日期,它將不再能夠更新日期,因爲它取決於某個日期和格式的一些代碼隱藏檢查(當他們將期限日期設置爲admin時,它將在模板上進行更改)。

是否有可能以某種方式阻止管理員更改電子郵件模板中的截止日期?也許如果你可以在asp:Textbox中插入另一個控件並使其成爲只讀?或者你有解決我的問題的另一種方法嗎?

+0

什麼是模板的格式,怎麼辦用戶編輯它? – 2014-08-27 09:35:45

+0

我想說這取決於你如何編輯這樣的模板。如果它是一個普通的asp:TextBox然後AFAIK你必須使用另一個只讀控件或在[本文]中描述的技術之一(http://stackoverflow.com/questions/15181417/how-to-make-only -some-text-in-a-text-box-read-only-while-allow-the-rest-to-be)(非常粗糙,我不得不說)。最好的辦法是編寫一個合適的編輯器(使用JavaScript),但這可能是矯枉過正的。你也可以簡單地忽略這個改變,或者不要把它寫在模板裏(留下一個佔位符)。 – 2014-08-27 09:36:35

+0

感謝您的回覆。我最終制作了一個標籤以供用戶在模板中插入。我無法確定它們不會刪除標籤,但至少現在它會從標籤名稱中提取日期。 – Ghost 2014-09-10 06:59:40

回答

0

您可以輕鬆地用一些編碼技巧做法如下:

public partial class Form1 : Form 
{ 
    string origValue = string.Empty; 
    public Form1() 
    { 
     InitializeComponent(); 
     origValue = textBox1.Text; 
    } 
    private void textBox1_TextChanged(object sender, EventArgs e) 
    {    
     if (textBox1.Text.Contains("12/10/2015")) 
     { 
      origValue = textBox1.Text; 
     } 
     else 
     { 
      textBox1.Text = origValue; 
     } 
    } 
}