2009-09-11 20 views
7

Tôi vừa mới bắt đầu tin nhắn với ASP: Kiểm soát đăng nhập và muốn chỉnh sửa giao diện của nó. Vì vậy, tôi đã làm như sau:ASP: Đăng nhập <LayoutTemplate> luôn tạo một <table>, làm thế nào tôi có thể dừng lại?

<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> 

Mặc dù thực tế rằng tôi không có <table> tag bất cứ nơi nào trong tài liệu, một khi tôi xem trước trang và xem mã nguồn, nó rất rõ ràng cho thấy một <table> đó. Ah! Làm thế nào trên thế giới để ngăn chặn hành vi điên rồ này, hoặc tôi buộc phải sử dụng bảng để bố trí thay vì CSS?

Trả lời

0

Có một số việc bạn có thể làm. Cách đơn giản nhất là sử dụng phiên bản của Css Control Adapters toolkit, mặc dù nó chưa được cập nhật trong một thời gian và gần đây tôi không sử dụng nó, vì vậy có lẽ đây không phải là một lựa chọn tuyệt vời nữa, tôi không chắc.

Nếu không, bạn có thể thử tạo ITemplate của riêng mình và đặt nó làm thuộc tính của LayoutTemplate cho điều khiển Đăng nhập.

Cách khác bạn có thể viết lại HTML được tạo bằng IHttpHandler, hoặc thậm chí làm lại nó trên máy khách với một cái gì đó giống như thay thế dom dom.

14

Bạn có thể thiết lập nó không sử dụng bảng mà không cần phần mở rộng của bên thứ ba, chỉ cần đảm bảo bạn sử dụng

<LayoutTemplate> 
</LayoutTemplate> 

Đối đẻ ra HTML/form của bạn bên trong kiểm soát, sau đó thiết lập các thuộc tính trên đăng nhập mà điều khiển bảng bên ngoài thành sai.

RenderOuterTable="false" 

Vậy đó, không có bảng :)

+0

Lưu ý rằng bạn cần .Net 4.0+ –

Các vấn đề liên quan