Thứ tư, ngày 7 tháng 12 năm 2016

Tổng hợp các thủ thuật lập trình asp.net - Phần 2

Ngày đăng: 11/4/2011, 9:16:48PM | Lượt xem: 4,085
Hot!

Trong phần 1 tôi đã nêu ra 10 thủ thuật nhỏ trong lập trình asp.net. Bài này tôi tiếp tục tổng hợp tiếp các thủ thuật lập trình với aspx.net

11. Tổng hợp nhiều file js trong một file duy nhất

Thông thường trang web của bạn sẽ sử dụng nhiều file javascript ví dụ như:

<script src="Tooltip/System_Tooltip.js" type="text/javascript"></script>
<script src="js/jquery-1.4.2.js" type="text/javascript"></script>
<script src="movies/swfobject.js" type="text/javascript"></script> 
<script src="js/jquery-ui.min.js" type="text/javascript"></script> 

Thay vì trong code ta gọi quá nhiều file JS ta sẽ tạo 1 file duy nhất totalScript.js chẳng hạn nội dung file này sẽ là

document.write('<script type="text/javascript" src="Tooltip/System_Tooltip.js"></script>');
document.write('<script type="text/javascript" src="js/jquery-1.4.2.js"></script>');
document.write('<script type="text/javascript" src="movies/swfobject.js"></script>');
document.write('<script type="text/javascript" src="js/jquery-ui.min.js"></script>');

Như vậy trong code bạn sẽ không phải khai báo quá nhiều javascript nữa mà chỉ cần 1 là đủ

<script src="totalScript.js" type="text/javascript"></script>

12. Khai báo các namespaces trong web.config

Thông thường khi ta tạo một trang mới với code behind thì chúng ta vẫn dùng các khai báo như

using System;
using System.Data;
using System.Configuration;
using System.Collections;

Giả sử ta dùng DataTable mà lại quên khai báo using System.Data; thì khi chạy sẽ báo lỗi. Vậy ta tránh trường hợp đó bằng cách khai báo các namespaces trong web.config:

<namespaces>
	<clear/>
	<add namespace="System"/>
	<add namespace="System.Collections"/>
	<add namespace="System.Collections.Specialized"/>
	<add namespace="System.Configuration"/>
	<add namespace="System.Text"/>
	<add namespace="System.Text.RegularExpressions"/>
	<add namespace="System.Web"/>
	<add namespace="System.Web.Caching"/>
	<add namespace="System.Web.SessionState"/>
	<add namespace="System.Web.Security"/>
	<add namespace="System.Web.Profile"/>
	<add namespace="System.Web.UI"/>
	<add namespace="System.Web.UI.WebControls"/>
	<add namespace="System.Web.UI.WebControls.WebParts"/>
	<add namespace="System.Web.UI.HtmlControls"/>
</namespaces>

13: Nhấn phím TAB 2 lần liên tiếp để hiện nhanh câu lệnh

Ví dụ bạn dùng câu lệnh IF:

Trong chế độ dòng lệnh, bạn gõ if sau đó NHẤN PHÍM TAB 2 LẦN thì câu lệnh IF sẽ xuất hiện như sau:

        if (true)
        {
            
        }

Lúc này, con trỏ chuột sẽ ở vị trí của chữ true, bạn chỉ cần gõ điều kiện của câu lệnh IF.

Tác dụng:
- Làm theo cách trên bạn sẽ rút ngắn được thời gian gõ câu lệnh
- Không rơi vào tình trạng thiếu dấu đóng hoặc mở câu lệnh {}

Áp dụng với các câu lệnh khác:
- FOR: bạn gõ chữ FOR rồi NHẤN PHÍM TAB 2 LẦN bạn sẽ có kết quả như sau:

for (int i = 0; i < length; i++)
{
    
}

- Áp dụng tương tự với các câu lệnh khác như: switch, foreach, while, do while, ... bạn sẽ cảm thấy rất thoải mái khi gõ các câu lệnh trong Visual Studio.

14. Đưa các thông tin tĩnh vào file xml.

Khi làm website có những phần thông tin tĩnh rất ít khi thay đổi như ảnh banner, copy right, địa chỉ liên hệ, ... nếu các thông tin này bạn đưa luôn vào code aspx thì khi có sự thay đổi bạn lại phải sửa lại code, Nếu đưa vào Database thì ta sẽ sử dụng connect tới Database server nhiều. Vậy có cách khác là các thông tin này bạn đưa vào file xml và trong code bạn viết để hiển thị chúng. Khi có thay đổi ta cập nhật lại file xml là xong. Như bài hướng dẫn sau: Asp.net Đưa các thông tin tĩnh vào file xml (Vì minh họa sẽ hơi dài nên tôi viết thành bài hướng dẫn riêng)

15. Ngăn chặn duplicate insert khi refresh trang

Vấn đề thường hay gặp khi thêm dữ liệu là bị duplicate insert khi trang web refresh. Nó xảy ra khi 1 trang refresh sau khi câu lệnh insert  được thực thi.

Ngăn chặn duplicate insert khi refresh trang trong ASP.NET

Giải pháp đơn giản nhất để giải quyết vấn đề này là redirect sau khi người dùng insert. Bạn tham khảo code demo sau khi insert sẽ redirect đến chính nó

private void InsertData()
{
    string strQuery = "INSERT INTO TB_TacGia (MaTacGia, TenTacGia) values(@MaTacGia, @TenTacGia)";
    SqlCommand cmd = new SqlCommand(strQuery);
    cmd.Parameters.AddWithValue("@MaTacGia", "AnhKhoa");
    cmd.Parameters.AddWithValue("@TenTacGia", "Bùi Anh Khoa");
    InsertUpdateData(cmd);
    Response.Redirect(Request.Url.AbsoluteUri);
}

16. Giới hạn độ dài của Textbox trong khoảng [a,b]

Giả sử bạn muốn giới hạn độ dài Textbox mật khẩu trong khoảng [a,b] bạn có thể dùng CustomValidator như minh họa sau:

<asp:TextBox runat="server" ID="txtTest"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server" 
        ErrorMessage="Độ dài phải trong khoảng [6,20]" 
        ControlToValidate="txtTest" OnServerValidate="CustomValidator1_ServerValidate">
  </asp:CustomValidator>

Viết sự kiện  CustomValidator1_ServerValidate

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
    if (args.Value.Length = 20)
        args.IsValid = false;
    else
    {
        if (args.Value.Length < 6)
            args.IsValid= false;
        else
            args.IsValid = true;
    }
}

17. Nhúng trạng thái Online/Offline của yahoo.

Trên web của bạn muốn hiển thị trạng thái Online/Offline của yahoo tại nơi muốn báo cho người dùng biết yahoo hỗ trợ trực tuyến. Bạn dùng đoạn mã như sau:

<a href="ymsgr:sendIM?yahooid"> 
<img src="http://opi.yahoo.com/online?u=yahooid&m=g&t=2" border="0" width="125" height="25" />
</a>

 Khi yahoo có id là yahooid Online thì hình ảnh Online của yahoo được hiển thị, tương tự là trạng thái Offline. Bạn thay yahooid bằng id của bạn nhé

18. Ngăn không cho người khác copy hay nhấn phải chuột trên trang web.
Khi cần không cho người khác bôi đen hoặc nhấn phải chuột trên trang web hay ứng dụng của bạn bạn hãy sửa lại thẻ <Body> như sau:

 

<body oncontextmenu="return false;"  onpaste="return false;" onselectstart="return false;">

Bạn còn có thể ứng dụng trong trường hợp bạn viết form đăng ký thành viên thường có trường Email và có yêu cầu người dùng xác nhận Email chính xác với Email đã nhập. Trường Xác nhận Email bạn cần ngăn không cho người dùng chọn ô Email và copy (Như thế chưa đúng nguyên tắc). Bạn sửa lại thuộc tính trong TextBox như minh họa sau

<asp:TextBox ID="TextBox1" runat="server"  
oncontextmenu="return false;" 
onkeypress="return onPaste(event)" 
onpaste="return false;" ></asp:TextBox>

19. Tạo Ico cho địa chỉ website.

Các trang web khi bạn truy cập hay có icon là biểu tượng của trang web đó. bạn sẽ thấy trên thanh address trước chữ http sẽ có biểu tượng của website. Để thực hiện bạn thêm mã html như sau vào trong thẻ head:

<link href="http://hmweb.com.vn/hmico.ico" rel="shortcut icon" type="image/x-icon" />

20. hiệu ứng chuyển trang bằng thẻ meta.
Khi người dùng đang xem trang web của bạn, họ chuyển qua trang web khác, bạn có thể dùng thẻ Mata như sau để tạo hiệu ứng chuyển trang như một lời chào thân thiện

<meta http-equiv="Site-Exit" content="revealTrans(Duration=3.0,Transition=23)"/>

Hoặc khi họ mở liên kết trên cùng trang của bạn, bạn cũng có thể tạo hiệu ứng chuyển trang đơn giản bằng cách dùng thẻ meta như sau

<META http-equiv="Page-Exit" content="progid:DXImageTransform.Microsoft.GradientWipe(duration=.5)">
hmweb
 Chia sẻ qua: 
Hot!
Ý kiến bạn đọc

These items will be permanently deleted and cannot be recovered. Are you sure?

Gallery

image

Maecenas viverra rutrum pulvinar

Maecenas viverra rutrum pulvinar! Aenean vehicula nulla sit amet metus aliquam et malesuada risus aliquet. Vestibulum rhoncus, dolor sit amet venenatis porta, metus purus sagittis nisl, sodales volutpat elit lorem…

Read more

Text Links

Thiết kế logo chuyên nghiệp Insky
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
Copyright © 2011 - 2012 vietshare.vn by phamkhuong102@gmail.com doanhkisi2315@gmail.com. All rights reserved.