2009-09-11 8 views
7

मैंने अभी एएसपी के साथ झुकाव शुरू कर दिया है: लॉगिन नियंत्रण, और इसकी उपस्थिति को संपादित करना चाहते हैं। तो मैं निम्नलिखित किया:एएसपी: लॉगिन <लेआउट टेम्पलेट> हमेशा <table> उत्पन्न करता है, मैं इसे कैसे रोक सकता हूं?

<asp:login ID="login" runat="server" onauthenticate="Authenticate"> 
<LayoutTemplate> 
    <asp:TextBox ID="UserName" runat="server"></asp:TextBox> 
    <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox> 
</LayoutTemplate> 
</asp:login> 

तथ्य यह है कि मैं दस्तावेज में कहीं कोई <table> टैग है के बावजूद, एक बार मैं पृष्ठ का पूर्वावलोकन और स्रोत देखें, यह बहुत स्पष्ट रूप से एक <table> वहाँ पता चलता है। आह! दुनिया में कैसे मैं इस पागल व्यवहार को रोकता हूं, या क्या मुझे सीएसएस के बजाय लेआउट के लिए तालिकाओं का उपयोग करने के लिए मजबूर किया गया है?

उत्तर

2

आप इसे बदलने के लिए लॉगिन नियंत्रण के लिए सीएसएस फ्रेंडली कंट्रोल एडाप्टर का उपयोग कर सकते हैं।

http://www.asp.net/CSSAdapters/Membership/Login.aspx

+0

+1 ने मुझे यह करने के लिए हराया। – womp

0

जिन्हें आप कर सकते की एक संख्या है।

के Login control के संस्करण का उपयोग करना सबसे आसान होगा, हालांकि इसे थोड़ी देर में अपडेट नहीं किया गया है और मैंने हाल ही में इसका उपयोग नहीं किया है, इसलिए शायद यह अब एक अच्छा विकल्प नहीं है, मैं निश्चित नहीं।

अन्यथा आप अपना खुद का ITemplate बनाने और इसे लॉगिन नियंत्रण के लिए लेआउट टेम्पलेट की संपत्ति के रूप में सेट करने का प्रयास कर सकते हैं।

वैकल्पिक रूप से आप जेनरेट किए गए HTML को IHttpHandler के साथ फिर से लिख सकते हैं, या इसे क्लाइंट पर jQuery डोम प्रतिस्थापन जैसे कुछ भी दोबारा कर सकते हैं।

14

आप इसे तीसरे पक्ष एक्सटेंशन के बिना तालिकाओं का उपयोग करने के लिए नहीं, केवल आपके नियंत्रण के अंदर अपने HTML/फ़ॉर्म को बिछाने के लिए

<LayoutTemplate> 
</LayoutTemplate> 

उपयोग सुनिश्चित करें सेट कर सकते हैं, फिर वह विशेषता लॉग इन कि नियंत्रण पर सेट बाहरी तालिका झूठी है।

RenderOuterTable="false" 

यह है कि, कोई टेबल :)

+0

ध्यान दें कि आपको .NET 4.0+ की आवश्यकता है –

संबंधित मुद्दे