2009-11-09 8 views
7

मैं इस कोशिश की में/छिपाने तालिका पंक्ति दिखाने के लिए, लेकिन के माध्यम से प्राप्त नहीं कर सका: -कैसे .ascx पेज

कोड के पीछे

protected HtmlTableRow trComment; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    //Show/Hide table rows (TR) 
    trComment.Visible = ConfigUtil.DisplaySummaryComment; 
} 

.ascx पेज

<tr id="trComment" runat="server"> 
    <td style="vertical-align:top; text-align:left;"> 
     <%#ConfigUtil.FieldLabels["PIComments"]%> 
     : 
    </td> 
    <td> 
     <%= Test.Comment %> 
    </td> 
</tr> 

उत्तर

13

आपका या iginal code काम नहीं करता है, क्योंकि यह गलत नहीं है, लेकिन क्योंकि आपके पास शायद trComment (जिस स्थिति में इसे त्रुटि होनी चाहिए) के साथ अधिक जगहें हैं या क्योंकि आपका वर्तमान कोड किसी प्रकार के टेम्पलेट के अंदर है (GridView में, Repeater)। उत्तरार्द्ध सबसे अधिक संभावना है, क्योंकि आप डेटा-स्टेटमेंट (<%#) का उपयोग करते हैं, जिसे आमतौर पर डाटाबेस नियंत्रण टेम्पलेट में रखा जाता है (लेकिन जरूरी नहीं)।

इसे समान रूप से और आसानी से हल करने का एक तरीका (कई तरीकों से मौजूद है और संभवत: शाब्दिक तालिकाओं का उपयोग नहीं करना सबसे अच्छा है) asp:PlaceHolder का उपयोग करना है, जो HTML "निशान" नहीं छोड़ता है, लेकिन किसी भी ब्लॉक को टॉगल करने के लिए उपयोग किया जा सकता है एचटीएमएल/ASP.NET कोड की:

<!-- toggle through OnLoad (can use ID as well) --> 
<asp:PlaceHolder runat="server" OnLoad="MakeVisibleOrNot"> 
    <tr> 
     ... 
    </ 
</asp:PlaceHolder> 
कोड में

पीछे

protected void MakeVisibleOrNot(object sender, EventArgs e) 
{ 
    ((Control) sender).Visible = ConfigUtil.DisplaySummaryComment; 
} 
+1

बहुत बढ़िया समाधान। धन्यवाद – Jango

2

कोशिश

trComment.Style.Add("display", "none"); 
+0

कोई कोड के साथ काम करता ASP.NET में '.Visible' कि नियंत्रण का प्रतिपादन पूरी तरह से रोकता है मदद करता है। अगर यह काम नहीं करता है, तो 'प्रदर्शन: कोई नहीं;' या तो नहीं। – Abel

4
<tr id="trComment" runat="server"> 
    <td> 

    </td> 
</tr> 

फिर अपने Page_Load() विधि में अपने तत्व और दृश्यता सेट सच है या च लगता है वरना तरह नीचे

protected void Page_Load(object sender, EventArgs e) 
{ 
    trComment.Visible = false; //or trComment.Visible = true; as you wish 
} 

आशा यह आप

0

यह भी पीछे

     <asp:PlaceHolder runat="server" Visible ='<%# Convert.ToBoolean(Session["sess_isArtist"].ToString() == "1" || Session["sess_isBeneficiary"].ToString() == "1" ? "true": "false") %>'> 
<tr> 
    ... 
</ 
         </asp:PlaceHolder> 
संबंधित मुद्दे