2011-11-23 29 views
5

Tôi đang sử dụng biểu mẫu asp và muốn biết liệu có thể thay thế các nút tiêu chuẩn bằng các phần tử HTML được tạo kiểu bằng CSS hay không.Có thể thay thế nút asp: bằng phần tử HTML

trang đăng nhập của tôi sử dụng một nút tiêu chuẩn

<asp:Button ID="LoginButton" runat="server" Text="Login" 
    onclick="LoginButton_Click" /> 

liên quan đến mã sau (C#), thực hiện việc kiểm tra đăng nhập.

Tôi đã thấy một số nút đẹp được triển khai bằng phần tử HTML <button> và được tạo kiểu bằng CSS có thể có các tính năng như hình ảnh và cuộn qua làm nổi bật. HTML cơ bản trông như thế này

<button type="submit" class="positive" onclick ="..."> 
    <img src="/icons/tick.png" alt=""/> 
    Login 
</button> 

Tôi đã nhìn thấy một câu hỏi thảo luận về Difference between asp:button and html's button vì vậy tôi hiểu được những yếu tố <button> không phải là một sự thay thế thả trong nhưng tôi muốn biết nếu asp:button thể được thay thế và vẫn gọi số LoginButton_Click mã C đằng sau?

CHỈNH SỬA:
Mặc dù tôi đang sử dụng ASP Tôi không ngại sử dụng một số javascript phía máy khách nếu cần.

Các nút Tôi thấy mà tôi đã suy nghĩ về vấn đề này đã được tìm thấy ở đây: Rediscovering the Button Element

EDIT 2: Tôi đã thử các answer from XIII sử dụng điều khiển asp LinkButton và làm việc, vẽ các nút như tôi muốn và kích hoạt C# khi được nhấp vào

<asp:LinkButton ID="LoginBtn" CssClass="button positive" 
     OnClick="LoginButton_Click" runat="server"> 
    <img src="/icons/tick.png" alt=""/> 
    Login 
</asp:LinkButton> 

Javascript được chèn vào trang (như đã đề cập bởi Curt) không phải là vấn đề đối với tôi nhưng có thể dành cho người khác; nhưng kể từ khi asp:loginview và các điều khiển khác liên quan đến xác thực biểu mẫu đã cần javascript Tôi không chắc đây là vấn đề với giải pháp.

tôi quyết định chấp nhận câu trả lời jwiscarson như đây là một thực hiện sạch và, mặc dù những gì tôi nghĩ, <button> có thể là một thả thay thế cho <asp:button>

Trả lời

2

Câu trả lời cho câu hỏi của bạn:

nếu asp: nút có thể được thay thế và vẫn gọi mã LoginButton_Click C# phía sau?

là có. Nếu bạn có một nút như:

<button type="submit" id="submit" class="positive" runat="server">Submit</button> 

Thuộc tính mà bạn cần phải thiết lập là khôngonclick, nhưng onserverclick. Bạn cũng có thể làm điều gì đó như:

protected override OnInit(EventArgs e) 
{ 
    submit.ServerClick += new EventHandler(submit_ServerClick); 
} 

Nếu bạn cần tạo kiểu trên nút đó, tôi nghĩ cách tốt nhất để giải quyết đó là thông qua các lớp CSS như bạn có trong ví dụ của mình.

1

Bạn có thể thiết lập CSS lớp qua cssClass tài sản của <asp:Button/>. Tuy nhiên, bạn có thể đặt thuộc tính runat="server"onserverclick="LoginButton_Click" thành <button/>.

+2

Tùy chọn tạo kiểu cho nút '' khá hạn chế. –

1

Một cách tiếp cận khác sẽ là sử dụng điều khiển và phong cách LinkButton hoàn toàn bằng CSS. Chúng tôi đã từng làm như vậy cho một dự án nào đó trong quá khứ. Làm việc khá tuyệt vời cho khách hàng của chúng tôi.

Thuộc tính quan tâm nếu CssClass

+1

Chỉ có vấn đề với điều này là LinkButtons không hoạt động mà không có javascript. OP đã không xác định điều này, nhưng giá trị của nó có tính đến. – Curt

+0

@Curt - Tôi không ngại sử dụng javascript, tôi chủ yếu quan tâm đến việc đạt được một nút tìm kiếm đẹp mắt. – Tony

0

Bạn có thể sử dụng nút HTML nếu bạn mong muốn, và tìm hiểu làm thế nào để gọi phương thức __doPostBack() với các đối số hợp lệ. Các nút Asp.Net và các nút HTML khá giống nhau khi nói đến cách chúng được hiển thị trong ứng dụng khách.

0

Như đã được đăng ở đây, bạn có thể tạo kiểu cho HTML được hiển thị bằng số asp:button hoặc sử dụng điều khiển asp khác.asp:button của bạn sẽ được hiển thị dưới dạng <input type="submit"> với các tùy chọn CSS có thể hạn chế hơn thẻ <button>.

Từ một số googling Tôi nghĩ rằng nó có thể để có được một thẻ <button> trả lại nhưng có vẻ như một excercise không tầm thường thấy How can I use the button tag with ASP.NET?

+0

Liên kết thú vị, cho tất cả tìm kiếm của tôi về SO trước khi đăng câu hỏi của tôi Tôi đã không quản lý để tìm thấy một! Cảm ơn, tôi sẽ xem xét. – Tony

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