Đăng ký vps giá rẻ, tên miềndomain. Việc kiểm tra và mua tên miền giá rẻ, domain giá rẻ, hosting giá rẻ, máy chủ ảo giá rẻserver giá rẻ chỉ với 2 bước đơn giản. Giúp bạn tiên phong trong kinh doanh Online

Asp.net
 9ecva.com - 9e Chu Van An Forever : Asp.net
Tiêu đề Chủ đề: Tổng hợp các thủ thuật lập trình asp.net – Phần 1 Trả lời bài viếtGửi bài viết mới
Tác giả
Nội dung << Chủ đề trước | Chủ đề kế tiếp >>
DUCVINH83
Administrator
Administrator
Avatar
Không ngừng học hỏi !

Ngày gia nhập: 01/11/2005
Giới tính:
Đến từ: Vietnam
Trạng thái:
Bài viết: 365
Tiền: 738$
Địa chỉ e-mail: Gửi mail
Yahoo! IM: Yahoo! IM
Sinh nhật: 17/02/1983
Cảnh cáo: (0%)
Minus 1 warningCurrent warnlevel: 0%Add 1 warning
Ngày gửi: 16/08/2011 lúc 11:31 sáng | Đã khóa IP Trích dẫn DUCVINH83

Trong bài viết này tôi sẽ tìm lại và tổng hợp các thủ thuật khi lập trình với asp.net. Có thể nó sẽ giảm bớt công sức khi bạn lập trình. Tôi sẽ chia làm nhiều phần, mỗi phần tôi sẽ post 10 thủ thuật hy vong sẽ giúp ích cho các bạn

1. Kiểm tra FileUpload chỉ có thể là file ảnh

Để tải lên hình ảnh đến máy chủ từ một ứng dụng web Asp.Net, Bạn sử dụng FileUpload. Nhưng bạn chỉ muốn giới hạn chỉ cho upload file ảnh thôi => Sử dụng RegularExpressionValidator như minh họa dưới đây

<asp:FileUpload ID="FileUpload1" runat="server"  />
<asp:RegularExpressionValidator
	ID="RegularExpre ssionValidator1"
	runat="server"
	ControlToValidate="FileU pload1"
	ErrorMessage="Không phải file ảnh"
	ValidationExpression=
"^([0-9a-zA-Z_\-~ :\\] )+(.jpg|.JPG|.jpeg|.JPEG|.bmp|.BMP|.gif|.GIF|.png|.PNG)$"> ;
</asp:RegularExpressionValidator> 


2. Tạo nhiều QueryString từ Hyperlink NavigateUrl trong GridView

Trong Gridview khi bạn muốn một trường nào đó là liên kết và bạn muốn truyền các QueryString hoặc Parameter để ở trang chuyển tiếp bạn có thể Request được các Parameter  này.

- Nếu là trường được convert thành TemplateField bạn dùng như minh họa sau:

<asp:HyperLink ID="HyperLink1" runat="server" Text="View Data"
NavigateUrl='<%#  String.Format("TestPage.aspx?param1={0}&param2={1}&p aram3={2}",
Eval("Field1"), Eval("Field2"), Eval("Field2")) %>'></asp:HyperLink>

- Nếu là HyperLinkField

 <asp:HyperLinkField
DataNavigateUrlFields="Field1,Field2 ,Field3"
DataNavigateUrlFormatString="TestPage.aspx?param1= {0}&param2={1}&param3={2}"
Text="View  Data" />

Hãy thay các  Field1, Field2, … Thành các tên trường dữ liệu của bạn


3. Giới hạn chỉ nhập số  trong Textbox

Để giới hạn khi người dùng chỉ có thể nhập ký tự số (số chứng minh thư chẳng hạn) trong textbox bạn có thể dùng FilteredTextBoxExtender của AjaxControl toolkit như sau:

<asp:TextBox ID="txtCMT" Width="50px" runat="server" />
<cc1:FilteredTextBoxExtender ID="ftbeCMT" runat="server"
    Enabled="True" FilterType="Numbers" TargetControlID="txtCMT" />

Nếu không dùng ajax bạn cần viết hàm javascript như sau:

function onlyNumbers(evt) {
    var e = event || evt;
    var charCode = e.which || e.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57))
     return false;
    return true;
}

Trong Textbox bạn sửa lại thành:

<asp:TextBox ID="txtCMT" runat="server" onkeypress="return onlyNumbers();" />


4. Tính số ngày, tháng, năm giữa hai mốc thời gian
Tham khảo ví dụ sau

DateTime date1 = Convert.ToDateTime("2008/01/01");
DateTime date2 = Convert.ToDateTime("2010/12/31");
TimeSpan timespan = date2.Subtract(date1);
int intDays = timespan.Days;
double intMonths = Math.Floor(intDays / 30.0);
double intYears = Math.Floor(intDays / 365.0);
Response.Write("Số ngày : " + intDays.ToString());
Response.Write("Số tháng : " + intMonths.ToString());
Response.Write("Số năm : " + intYears.ToString());


5. Thêm điều kiểm xác nhận xóa/sửa trong gridview

Trong gridview nếu bạn muốn có thêm cột cho phép người dùng chọn bản ghi để xóa, Bạn có thể thêm cột và convert thành TemplateField và khi người dùng click chọn xóa bạn có yêu cầu xác nhận thao tác xóa này. Bạn xem minh họa sau

<asp:TemplateField HeaderText="Xóa">
    <ItemTemplate>
        <asp:LinkButton ID="lbtDelete" runat="server"
            OnClientClick="return confirm('Bạn có chắc chắn xóa không?')"
            onclick="lbtDelete_Click"><img
            src="Images/Xoa.jpg" border="0" /></asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>

Hoặc bạn cũng có thể code bằng C# trong hàm RowDataBound của gridview như sau:

if (e.Row.RowType == DataControlRowType.DataRow)
{
    if (e.Row.Cells[1].HasControls())
    {
        LinkButton lbtDelete= ((LinkButton)e.Row.Cells[1].Controls[0]);
        lbtDelete.Attributes.Add("onclick", "return confirm('Bạn có chắc chắn xóa không?');");
    }
}
//Chú ý là Cell bắt đầu từ 0.
//if (e.Row.Cells[1].HasControls()) Sẽ kiểm tra Cells[1] có tồn tại hay không


6. Sử dụng nhiều Web.Config trong ứng dụng Asp.Net

Nếu bạn muốn sử dụng nhiều file web.config trong ứng dụng của bạn (Minh họa rất rõ nếu bạn đã cài Forum yetanotherforum  Bạn sẽ thấy các thông số được lưu ở file db.config, app.config, …). Ví dụ bạn muốn lưu riêng các thông số kết nối Database, các thông số về cấu hình ứng dụng, … ra một file web.config. Bạn tham khảo ví dụ sau:

- Tạo file condb.config nội dung như sau:

<appSettings>
<add key="TestConnect" value="data source=.\SQL2005;initial catalog=MyDatabase;User ID=sa; Password=***"/>
</appSettings>

- Trong file web.config tại thẻ appSettings bạn trỏ đến file condb.config như sau:

<appSettings>
	<appSettings file="condb.config">
</appSettings>

Giờ bạn muốn lấy các thông số kết nối này bạn in thử giá trị của nó như sau:

 Response.Write(ConfigurationManager.AppSettings.Get("TestCon nect"));

Tương tự như vậy bạn có thể tạo các file *.config khác để lưu các thông số cấu hình ứng dụng khác


7. Bắt sự kiện phím Enter.

Giả sử bạn có Form tìm kiếm và bạn muốn khi nhập dữ liệu ở Textbox và nhấn phím Enter thì sự kiện onclick lên nút Button được thực hiện bạn viết hàm javascript như sau:

<script language="javascript">
 function doClick(buttonName, e) {
     var key;
     if (window.event)
         key = window.event.keyCode;     //IE
     else
         key = e.which;     //firefox
     if (key == 13) {
         var btn = document.getElementById(buttonName);
         if (btn != null) {
             btn.click();
             event.keyCode = 0
         }
     }
 }
</script>

Trong code C# bạn muốn khi bạn nhấn Enter tác dụng với control nào bạn dùng như ví dụ sau:

 txtTuKhoa.Attributes.Add("onKeyPress", "doClick('" + btnTim.ClientID + "',event)");


8. Viết hàm ShowMessage đưa ra thông điệp bạn muốn

Tham khảo hàm sau:

void ShowMessage(string mTextMsg, string mControlFocus)
{
    System.Text.StringBuilder sb = new System.Text.StringBuilder("");
    sb.Append("<script language=\"JavaScript\">");
    if (mTextMsg != "") sb.Append("  alert('" + mTextMsg + "');");
    if (mControlFocus != "") sb.Append("document.forms[0].item('" + mControlFocus + "').focus();");
    sb.Append("</script>");
    if (!IsStartupScriptRegistered("setFocus")) RegisterStartupScript("setFocus", sb.ToString());
}

Sử dụng hàm này: Giả sử bạn có một Button bạn viết như sau

protected void Button1_Click(object sender, EventArgs e)
{
    ShowMessage("Thông điệp của bạn!", "Button1");
    return;
}


9. Thêm cột tự tăng trong Grid.
Trong Gridview nếu bạn muốn có thêm cột số thứ tự bạn Add thêm TemplateField như sau vào Grid nhé

<asp:TemplateField HeaderText="STT">
     <ItemTemplate>
         <%# Container.DataItemIndex + 1 %>
      </ItemTemplate>
 </asp:TemplateField>


10. Chuyển hướng sang trang khác sau khi click OK từ MessageBox

Giả sử bạn muốn alert một thông điệp nào đó và sau khi người dùng nhấn OK thì trang hiện hành được điều hướng sang trang khác. Bạn tham khảo code sau

string strScript = "<script>";
strScript += "alert('Thông điệp của bạn');";
strScript += "window.location='NextPage.aspx';";
strScript +=  "</script>";
Page.RegisterClientScriptBlock("strScrip t", strScript);

Một cách khác bạn có thể dùng

ScriptManager.RegisterStartupScript(
    this, this.GetType(), "alert",
    "alert('Thông điệp của bạn');location.href='NextPage.aspx';", true);
kythuataspnet.wordpress.com



__________________

YM: DUCVINH83
0912 822334


Lên trên Xem DUCVINH83's Thông tin cá nhân Tìm những bài viết khác của DUCVINH83 Ghé thăm DUCVINH83's Trang chủ
 

Nếu bạn muốn trả lời thì trước tiên bạn phải đăng nhập
Nếu chưa đăng ký thì bạn hãy đăng ký

  Trả lời bài viếtGửi bài viết mới
Xem trang in Xem trang in

Di chuyển nhanh
Bạn không thể tạo đề tài mới
Bạn không thể trả lời bài viết
Bạn không thể xoá bài viết bạn đã gưi
Bạn không thể sửa bài viết bạn đã gửi
Bạn không thể tạo bình chọn
Bạn không thể bình chọn



Trang này được tạo ra trong 0.1719 giây.
cheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salesac longchamp pas chergucci outlet

baomang.net  9ecva.com © 2007 - Phát triển bởi Trịnh Đức Vinh