2012-05-12 10 views
12

में सत्यापन त्रुटि संदेश फायरिंग नहीं होने पर अनावश्यक स्थान छुपाएं मैं एएसपी आवश्यक फ़ील्ड सत्यापन का उपयोग कर अपने एएसपी.NET पृष्ठ में कुछ टेक्स्ट बॉक्स को सत्यापित करना चाहता हूं। और मैं पृष्ठ के शीर्ष पर उस त्रुटि संदेश को प्रदर्शित करना चाहता हूं।एएसपी पृष्ठ

<table> 
    <tr><td colspan='2'><b> User Input</b><br/></td></tr> 
    <tr><td colspan='2'> 
      <%--input validations--%> 
      <asp:RegularExpressionValidator ID="regexpName1" runat="server"  
       ErrorMessage="This expression does not validate." 
       ControlToValidate="TextBox_adTitle"  
       ValidationExpression="^[a-zA-Z'.\s]{1,40}$" /> 
      <br /> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
       ControlToValidate="TextBox_1" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator> 
     <br /> 
     </td> 
    </tr> 
    <tr><td> 
     <asp:Label ID="Label_name" runat="server" Text="Seller Name * "></asp:Label> 
     </td> 
     <td> 
      <asp:TextBox ID="TextBox_1" runat="server" ReadOnly="True" ></asp:TextBox>   
     </td> 
    </tr> 

... 

यह ठीक काम कर रहा है। हालांकि, पहली तालिका पंक्ति अपनी जगह रख रही है, यहां तक ​​कि त्रुटि संदेश भी प्रदर्शित नहीं हो रहे हैं। यह यूआई को पृष्ठ पर खराब दिखने का कारण बनता है क्योंकि पेज लोड होने पर अनावश्यक स्थान होता है।

पेज लोड होने पर पहली पंक्ति (सत्यापन की त्रुटि संदेश पंक्ति) की जगह को कैसे छिपा सकता है और जब कोई सत्यापन त्रुटि नहीं होती है?

उत्तर

2

मुझे इसे हल करने का एक अच्छा तरीका मिला।

अपना सत्यापन पैनल के अंदर रखें, और उन्हें "none" के रूप में प्रदर्शित करें।

<asp:Panel ID="Panel1" runat="server" > 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
      ErrorMessage="RequiredFieldValidator1" ControlToValidate="TextBox1" Display="None"></asp:RequiredFieldValidator><br /> 
     <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
      ErrorMessage="RequiredFieldValidator2" ControlToValidate="TextBox2" Display="None"></asp:RequiredFieldValidator><br /> 
</asp:Panel> 

और आपके एएसपी पृष्ठ के शीर्ष पर एक सत्यापन सारांश जोड़ें।

<table> 
     <tr> 
     <td> <asp:ValidationSummary id="summery1" runat="server"/></td> 
     </tr> 
    .... 

सत्यापन सारांश केवल पृष्ठ में आवश्यक स्थान प्राप्त करता है।

43

आप अपने सत्यापनकर्ता को

Display="Dynamic" 

गुण सेट करने की जरूरत है, इस वांछनीय व्यवहार का कारण होगा।

+1

यह अभी भी एक खाली पंक्ति प्रस्तुत करेगा, इसलिए यह समस्या को पूरी तरह से हल नहीं कर सकता है। – Filburt

+0

मुझे यह मिला, इसलिए आप पूरी तरह से टी तत्व को छिपाना चाहते हैं, सोचें कि आपको कस्टम बनाने के लिए जेएस स्क्रिप्ट का उपयोग करना होगा। उदाहरण के लिए, सत्यापन संदेश में ऑब्जेक्ट ईवेंट जोड़ें, एक बार यह सीएसएस बदल गया है और पहले tr के लिए परिवर्तन सीएसएस प्रदर्शित किया गया है और इसे भी दिखाना है। –

+0

[प्रमाणीकरण (एएसपी.नेट) के आधार पर नियंत्रण की शैली बदलना] (http://stackoverflow.com/a/1405177/205233) में समाधान हो सकता है। – Filburt

-1

को छुपाने के लिए प्रमाणकों इस

<tr> 
    <td>TEXT</td> 
</tr> 
<tr> 
    <td>INPUT 
    <br/> 
    <asp:validator....></> 
    </td> 
</tr> 

या

<tr> 
    <td>TEXT</td> 
</tr> 
<tr> 
    <td>INPUT 
    <div> 
     <asp:validator....></> 
    </div> 
    </td> 
</tr> 
0

सरल समाधान है। सत्यापनकर्ता को यह करें:

CssClass="AT3RValidator" 

.AT3RValidator { 
    display:none; 
} 

और प्रदर्शित करने के लिए = "गतिशील" सेट है, लेकिन है कि अभी भी खाली जगह प्रदान करेगा क्योंकि कि दृश्यता सेट: उत्पन्न सत्यापनकर्ता अवधि है, जो प्रदर्शन से अलग है करने के लिए छिपा शैली: कोई नहीं, यह renders अवांछित खाली जगह।

+0

क्या होगा प्रमाणीकरण त्रुटि * तब दिखाई देनी चाहिए?ऐसा लगता है कि यह इसे छुपाएगा चाहे वह दिखाना चाहिए या नहीं। – TylerH

+0

जब त्रुटि आग प्रदर्शित करता है इनलाइन शैली सीधे तत्व पर सेट हो जाता है, तो यह मेरी कक्षा को ओवरराइड करता है। लेकिन मेरी कक्षा वास्तव में जरूरी नहीं है क्योंकि प्रदर्शन = "गतिशील" सेट प्रदर्शित करता है: कोई भी पहले से ही नहीं। –

1

बस संपत्ति जोड़ें।

प्रदर्शन = "गतिशील"

अपने सत्यापनकर्ता भीतर

, उदाहरण नीचे दे।

<asp:RequiredFieldValidator ID="rfvEmail" runat="server" Display="Dynamic" ForeColor="Red" ErrorMessage="Please enter Email" ControlToValidate="txtEmail" ValidationGroup="addManufacture"></asp:RequiredFieldValidator> 
+1

यह [# 1 उत्तर] (http://stackoverflow.com/a/10563265/2415524) का डुप्लिकेट है। – mbomb007

+0

Kind'a akward क्यों उच्च वोट गणना के साथ जवाब पृष्ठ के बॉट में रहते हैं और पहले diplayed नहीं हैं। –