Ngày gửi: 16/08/2011 lúc 10:47 sáng | Đã khóa IP
|
|
|
Trong 2 phần trước tôi đã tổng hợp 20 thủ thuật (mỗi phần 10 thủ
thuật) lập trình với asp.net. Trong phần tiếp theo này tôi sẽ tiếp tục
tổng hợp 10 thủ thuật nữa để các bạn tham khảo.
21: Hiển thị chính xác nội dung văn bản TextArea
Khi bạn nhập nội dung văn bản trong TextArea thường mất các ký tự
khoảng trắng hoặc ký tự xuống dòng. Nếu bạn muốn giữ đúng định dạng đã
nhập trong TextArea bạn thực hiện thay thế các ký tự đó như ví dụ
Label1.Text = TextBox1.Text.Replace("\n", "<br />").Replace(" ", " ");
22. Sử dụng ViewState đúng chỗ
Khi lập trình web với asp.net sử dụng các control, khi bạn view source sẽ thấy như minh họa
<input type="hidden" name="__EVENTVALIDATION"
id="__EVENTVALIDATION" value="/wEWAgKK7LjKBwKM54rGBgzCWqbCIzq33uVXHF19FzfdGPsJ" />
Nếu bạn sử dụng càng nhiều control thì value càng lớn. điều này sẽ
làm ảnh hưởng đến tốc độ, băng thông cũng như các cỗ máy tìm kiếm (Các
máy tìm kiếm tìm kiếm tốt nhất cho khoảng 20KB source đầu tiên trên
trang của bạn, quá số này thường sẽ bị bỏ qua – Tham khảo ASP.NET SEO around VIEWSTATE). Vì vậy nếu là lập trình website bạn nên bỏ ViewState bằng cách
Trong web.config
<pages enableViewStateMac='false'/>
Hoặc trong từng trang:
<%@ Master Language="C#" EnableViewState ="false"
Hoặc với từng control bạn cũng có thể bỏ ViewState
<asp:Button ID="BT1" EnableViewState="false" runat="server" />
Nhưng bạn chú ý 1 điều là khi bạn bỏ ViewState thì các sự kiện
postback sẽ không có đúng hiệu lực của nó, chính vì vậy bạn cân nhắc ở
trang nào nên dùng ViewState, trang nào không nên dùng ViewState.
23. Cách dùng khác của mệnh đề if … else
Thông thường hoặc theo thói quen bạn hay dùng mệnh đề if … else như sau:
private string abc(int gio)
{
string str = "";
if (gio < 12)
{
str = "Chào buổi sáng";
}
else
{
str = "Chào buổi chiều";
}
return str;
}
Với dạng if … else đơn giản bạn có thể dùng theo cấu trúc khác như sau (dễ và gọn hơn nhiều)
private string abc(int gio)
{
string str = "";
str = (gio < 12) ? "Chào buổi sáng" : "Chào buổi chiều";
return str;
}
24. Xóa hết các thẻ html của nội dung
Khi trình bày dữ liệu nhất là khi bạn copy dữ liệu từ trang khác,
thường là sẽ có các style sheet của trang bạn copy về. Khi trình bày dữ
liệu nhất là sử dụng Tooltip bạn sẽ bị lỗi không hiển thị được (Đây cũng
là vấn đề nhiều bạn hỏi khi thực hiện theo bài Hướng dần thực hiện tooltip). Để xóa hết html của một chuỗi bạn dùng hàm sau:
private string RemoveHTMLTag(string HTML)
{
// Xóa các thẻ html
System.Text.RegularExpressions.Regex objRegEx = new System.Text.RegularExpressions.Regex("<[^>]*>");
return objRegEx.Replace(HTML, "");
}
25. Dùng hàm Split với tham số là một chuỗi:
Bình thường bạn sử dụng hàm Split để chuyển chuỗi thành mảng với 1 ký
tự xuất hiện trong chuỗi, với hàm Split tham số truyền vào là char nên
bạn chỉ chuyên được 1 lý tự. Nếu bạn dùng hàm Split với tham số là 1
chuỗi bạn dùng như ví dụ sau:
string strHTML = "<p>Bài 1</p><p>Bài 2</p><p>Bài 3</p><p>Bài 4</p>";
string[] strSplit = Regex.Split(strHTML, "</p>");
Ở ví dụ này ta dung Regex.Split của lớp
System.Text.RegularExpressions – tôi tạo ra mảng strSplit để lấy các
phần tử là các thẻ <p> và nội dung của nó. Điều này khi bạn không
sử dụng Regex.Split sẽ không thực hiện được
26. Lấy nội dung của một thẻ html
Giả sử bạn có một chuỗi gồm nhiều đoạn được đặt trong các thẻ html
(thẻ <p> chẳng hạn), bạn muốn lấy nội dung của một thẻ <p>
trong chuỗi đó. bạn dùng hàm như cí dụ sau:
static string GetParagraphOfHTMLTag(string strHTML)
{
Match m = Regex.Match(strHTML, @"<p> \s*(.+?)\s*</p>");
if (m.Success)
{
return m.Groups[1].Value;
}
else
{
return "";
}
}
Trong hàm trên bạn thay chỉ số 1 bằng chỉ số thứ tự thẻ html bạn muốn lấy
Ví dụ:
string strHTML = "<p>Bài 1</p><p>Bài 2</p><p>Bài 3</p><p>Bài 4</p>";
string s1 = GetParagraphOfHTMLTag(strHTML);
Khi đó s1 của bạn sẽ là Bài 1
27. Khắc phụ lỗi font khi viewsource khi dùng FCKEditor
Nếu bạn không để ý config cho FCKEditor thì khi lưu lại
dữ liệu trong CSDL sẽ lưu tiếng Việt dưới dạng Encode, trong text sẽ có
các ký tự như sau:
< =”Microsoft FrontPage 5.0″ name=GENERATOR> <
=FrontPage.Editor. name=ProgId> Không cần chạy
đôn chạy đáo khắp
các trung tâm để mong tìm được một công
việc làm thêm tăng thu nhập, chẳng cần phải gật
đầu với những công việc nằm ngoài vùng
Mặc dù đoạn text này vẫn được trình duyệt hiển thị đúng
nhưng trong html code bị như thế, nhìn không thích một chút nào cả hơn
nữa có thể gây ra dư thừa dữ liệu hoặc tìm kiếm tiếng Việt không chính
xác. Để khắc phục hiện tượng này bạn thêm vào file config dòng sau (vào
file fckconfig.js):
28. Sử dụng ImageGallery của FreeTextbox để quản lý và chèn ảnh vào bài viết
Khi sử dụng FreeTextbox . Nếu không config thì bạn không
có trình quản lý Image với chức năng upload và chèn ảnh vào nội dung
bài viết. Với FreeTextBox cũng đã hỗ trợ bạn đủ công cụ để quản lý và
chọn ảnh vào bài viết. Khi download thư viện này về tại http://freetextbox.com/download/
trong thư mục giải nén có file ftb.imagegallery.aspx và thư mục
aspnet_client. Bạn hãy copy file và thư mục này vào thư mục web của bạn.
Sau đó trong code bạn dùng như sau:
<FTB:FreeTextBox ID="ftbContent" runat="server" Height="120px"
ImageGalleryUrl="../ftb.imagegallery.aspx?rif=/imagespath/&a mp;cif=~/uploads/image/"
Width="100%" ToolbarLayout=" ParagraphMenu,FontFacesMenu,FontSizesMenu,FontForeColorsMenu |Bold,Italic,Underline,Strikethrough;Superscript,Subscript,R emoveFormat|JustifyLeft,JustifyRight,JustifyCenter,JustifyFu ll;BulletedList,NumberedList,Indent,Outdent;CreateLink,Unlin k,InsertImage,InsertRule|Cut,Copy,Paste;Undo,Redo,Print, InsertImageFromGallery,Preview,SelectAll,WordClean,NetSpell" >
</FTB:FreeTextBox>
Với code ví dụ trên tất cả ảnh sẽ được quản lý và lưu
vào thư mục uploads/image/ trong web của bạn. Khi viết bài bạn có thể
tạo các thư mục con và hiển thị các hình ảnh dạng ImageGallery rất dễ
quản lý và tiện không kém FCKEditor
Xem thêm Hướng dẫn sử dụng và cấu hình FreeTextbox
29: Viết comment cho các hàm
Khi sử dụng VS để viết code bạn thấy VS hỗ trợ viết code
và list ra các hàm, phương thức tương ứng và khi bạn chọn một phương
thức nào đó sẽ có comment về các tham số, kiểu dữ liệu, giá trị trả về, …
Khi bạn viết hàm bạn cũng có thể tạo comment như vậy
bằng cách bạn đưa con nháy lên phía trên của hàm đang viết và gõ 3 dấu
/// khi đó VS sẽ tự tạo các commnet và bạn ghi các comment của bạn vào
và khi dùng nó cũng sẽ hiển thị comment như trên.
Ví dụ:
/// <summary>
/// Xóa một file được chọn
/// </summary>
/// <param name="fileName">file cần xóa</param>
public void DeleteFile(string fileName)
{
try
{
FileInfo fi;
if (System.IO.File.Exists(fileName) == true)
{
fi = new FileInfo(fileName);
fi.Delete();
}
}
catch (Exception ex) { ex.Message.ToString(); }
}
30. Đọc nôi dung của một trang web
Bạn cần đọc nội dung của một trang nào đó để bóc tách dữ liệu bạn dùng hàm sau để đọc nội dung.
/// <summary>
/// Đọc nội dung trang bất kỳ
/// </summary>
/// <param name="Address">Địa chỉ trang</param>
/// <returns>string</returns>
public string GetWebContent(string Address)
{
string txOutput = "";
try
{
if (Address != "")
{
System.Net.WebClient MyClient = new System.Net.WebClient();
System.IO.Stream MyStream = MyClient.OpenRead(Address);
System.IO.StreamReader MyStreamReader = new System.IO.StreamReader(MyStream);
string NewLine;
while ((NewLine = MyStreamReader.ReadLine()) != null)
{
txOutput += NewLine + "\r\n";
}
}
}
catch { }
return txOutput;
}
Kết quả hàm này trả về là chuỗi html như khi bạn chọn viewsource của trang bạn muốn đọc
__________________
YM: DUCVINH83
0912 822334
|