2011-03-02 25 views
1

我有一個.NET問題。對於我正在追求移動設備(特別是黑莓手機)的特定應用,我正在使用驗證器(確切地說是必需的驗證器)。發出「nbsp;」的靜態驗證程序

問題是,我已經從asp.net禁用JavaScript(通過指定ClientTarget =「ie4」,但在驗證器標籤上設置EnableClientScript =「False」具有相同的效果)。實際的問題是,當驗證器不可見時,它會發出「nbsp;」而不是沒有,有沒有辦法來覆蓋這個不需要的結果?

請不要回復包含css或javascript的解決方案,因爲我無法在我的特定情況下使用它。

謝謝。

回答

2

Display = Static表示發出單個不間斷空間(「& nbsp」)。這最後一個行爲是存在的,以便只包含驗證器的表格單元在有效時不會摺疊爲無。

here

正如Frédéric Hamidi說,你可以嘗試Display=Dynamic代替,但如果你使用Display=Static堅持,我覺得你唯一的選擇是擴展驗證並覆蓋Render方法。

protected override void Render(HtmlTextWriter writer) 
{ 
    if (this.Display == ValidatorDisplay.Static && this.IsValid) 
    { 
     writer.Write(String.Empty); 
    } 
    else 
    { 
     base.Render(writer); 
    } 
} 
1

靜態驗證器在隱藏時確實會呈現 實體。

嘗試使用動態驗證程序,將它們的Display屬性設置爲ValidatorDisplay.Dynamic