Monday, July 28, 2014

MỌI NGƯỜI CÙNG ĐỌC VÀ SUY NGẪM.

1.Trong vụ cướp nhà băng được cho là ở Cộng hòa Nhân dân Trung Hoa, một tên cướp hét lên: "Tất cả đứng im, nên nhớ tiền thuộc về Nhà nước, còn mạng sống thuộc về chúng mày!"
Mọi người trong ngân hàng nghe xong liền im lặng nằm xuống.

> Điều này được gọi là: "Cách thức khai tâm - Thay đổi những suy nghĩ theo lối mòn"

2.Có cô nhân viên nằm trên bàn trong tư thế khêu gợi, một tên cướp hét lên: "Làm ơn cư xử văn minh, chúng tôi là cướp chứ không phải những kẻ hiếp dâm!"
> Điều này được gọi là "Hành xử chuyên nghiệp - Chỉ tập trung vào công việc mà bạn được huấn luyện!"

3.Khi tên cướp quay lại, một tên cướp trẻ hơn (có bằng MBA) nói với tên cướp già hơn (kẻ mới tốt nghiệp hết phổ thông): "Đại ca, có phải đếm xem chúng ta cướp được bao nhiêu?". Tên cướp già gằn giọng: "Mày ngu lắm, bao nhiêu tiền, đếm thế nào được? Đợi đi, tối nay TV sẽ nói chúng ta cướp được bao nhiêu!"
> Điều này được gọi là: "Kinh nghiệm - Ngày nay thì kinh nghiệm quan trọng hơn giấy tờ, sách vở"

4.Sau khi băng cướp rời khỏi, giám đốc chi nhánh định gọi báo cảnh sát. Kế toán trưởng vội vã chạy đến, thì thầm vào tai ngài: "Đợi đã, hay để 5 triệu chúng ta biển thủ vào trong số bị băng cướp lấy mất!"
> Điều này được gọi là: "Bơi theo dòng nước - Chuyển đổi những tình huống bất lợi trở thành thuận lợi"

5.Người giám đốc tự nhủ: "Vậy thật tuyệt nếu cứ mỗi tháng lại có một vụ cướp!"
> Điều này được gọi là: "Hãy loại bỏ những điều khó chịu - Hạnh phúc là điều quan trọng nhất"

6.Ngày hôm sau, TV đưa tin 100 triệu đã bị cướp khỏi nhà băng. Những tên cướp đếm đi đếm lại thì chỉ có 20 triệu. Chúng rất giận dữ: "Chúng ta mạo hiểm mạng sống của mình chỉ để lấy 20 triệu, bọn chó lãnh đạo chỉ ngồi chơi mà cướp được 80 triệu. Đúng là học hành, có bằng cấp thì chúng nó được ngồi cái ghế đấy, cướp tiền siêu đẳng hơn chúng ta!"

> Điều này giải thích tại sao: "Kiến thức thì giá trị như vàng"

KẾT LUẬN: Trong cuộc sống luôn có những điều chúng ta có thể nhanh chóng nhìn ra, có những điều không như chúng ta thấy từ bên ngoài, và chân lý chỉ mang tính tương đối.
Quan trọng nhất là thái độ đối với cuộc sống này, hay cách nhìn chúng ta lựa chọn để mang lại vui vẻ, hạnh phúc cho bản thân, cho những người thân xung quanh mình.

Friday, July 18, 2014

 ...

When you are sure you HTML-encode everywhere you pass strings to HTML, then set validateRequest="false".
In .NET 4 you may need to do a little more. Sometimes it's necessary to also add to web.config

Wednesday, May 28, 2014

Please see this link:

Social Network Login Status Detector Demo:

http://www.tomanthony.co.uk/tools/detect-social-network-logins/

Monday, January 27, 2014

New links C# code

http://www.jb51.net/list/list_159_1.htm
http://www.aspsnippets.com/jQueryFAQs.aspx?s=1
http://blog-of-darius.blogspot.com/search/label/C%23

Friday, January 10, 2014

.rounded_wrapper {
 position: relative;
}
 
.rounded_wrapper img {
 border-width: 0;
 border-style: none;
}
 
.rounded_wrapper div {
 height: 7px;
 position: absolute;
 width: 100%;
}
 
.rounded_wrapper .tl {
 top: 0;
 left: 0;
 background: url(img/rounded_corners/tl.gif) no-repeat left top;
}
 
.rounded_wrapper .tr {
 top: 0;
 right: 0;
 background: url(img/rounded_corners/tr.gif) no-repeat right top; 
}
 
.rounded_wrapper .br {
 bottom: 0;
 right: 0;
 background: url(img/rounded_corners/br.gif) no-repeat right bottom; 
}
 
.rounded_wrapper .bl {
 bottom: 0;
 left: 0;
 background: url(img/rounded_corners/bl.gif) no-repeat left bottom;
}
 
/* IE6 fix */
.ie6_width .tr {
    right: -1px;
}
 
.ie6_width .br {
    right: -1px;
}
 
.ie6_height .br {
    bottom: -1px;
}
 
.ie6_height .bl {
    bottom: -1px;
}
 
 
$('img.rounded').one('load',function () {
 var img = $(this);
 var img_width = img.width();
 var img_height = img.height();
 
 // build wrapper
 var wrapper = $('
'
); wrapper.width(img_width); wrapper.height(img_height);   // move CSS properties from img to wrapper wrapper.css('float', img.css('float')); img.css('float', 'none')   wrapper.css('margin-right', img.css('margin-right')); img.css('margin-right', '0')   wrapper.css('margin-left', img.css('margin-left')); img.css('margin-left', '0')   wrapper.css('margin-bottom', img.css('margin-bottom')); img.css('margin-bottom', '0')   wrapper.css('margin-top', img.css('margin-top')); img.css('margin-top', '0')   wrapper.css('display', 'block'); img.css('display', 'block')   // IE6 fix (when image height or width is odd) if ($.browser.msie && $.browser.version == '6.0') { if(img_width % 2 != 0) { wrapper.addClass('ie6_width') } if(img_height % 2 != 0) { wrapper.addClass('ie6_height') } }   // wrap image img.wrap(wrapper);   // add rounded corners img.after('
'
); img.after('
'
); img.after('
'
); img.after('
'
); }).each(function(){ if(this.complete) $(this).trigger("load"); });
 

Asp.net

var persons = new DataTable();
 
string lastName = string.Empty;
 
DataRow[] foundRows = persons.Select("Person_Id = 100");
if (foundRows.Length == 1)
{
    lastName = foundRows[0]["Last_Name"].ToString();
}
 
now with LINQ, I have created the following method:
        
public static T GetFirstResultValue(DataTable table,string colToSearch, string colToReturn, TY searchValue) where TY: IComparable
{
    T ret = default(T);
 
    IEnumerable rows = from row in table.AsEnumerable()
                                        where row.Field(colToSearch).CompareTo(searchValue) == 0
                                        select row;
 
    if (rows.Count() == 1)
    {
        ret = (T) rows.First()[colToReturn];
    }
 
    return ret;
}
 

Friday, December 27, 2013

Top jQuery Plugins

1, https://github.com/peachananr/autofix_anything
2, http://lirancohen.github.io/stickUp/#installation
3, http://codegeekz.com/top-jquery-plugins/

4, http://thedesignblitz.com/best-jquery-plugins-september-2013/
5, http://craigsworks.com/projects/qtip/docs/tutorials
6, http://fnagel.github.io/MultiDialog/demos/index.html
7, http://swaydeng.github.io/imgcolr/   (https://github.com/swaydeng/imgcolr)
8,http://owlgraphic.com/owlcarousel/#demo
9, http://jquery-plugins.net/
10, http://www.htmldrive.net/


Sunday, December 15, 2013


Trong quá trình làm việc với ASP.NET và JQUERY, tôi phát hiện ra rằng có 5 chức năng khác nhau có thể được dùng để gọi Ajax đến một trang khác và lấy dữ liệu từ trang đó. Tôi sẽ trình bày từng chức năng một.

Sau đây là danh sách các chức năng có sẵn trong thư viện JQuery để thực hiện cuộc gọi Ajax:
  1. Load
  2. getJson
  3. GET
  4. POST
  5. Ajax
Load:
Phương thức gọi Ajax đến trang và hỗ trợ gửi sử dụng phương thức khác là Get hoặc Post.

var loadUrl = "TestPage.htm";$(document).ready(function () {$("#load_basic").click(function () {$("#result").html(ajax_load).load(loadUrl, function (response, status, xhr) {if (status == "error") {var msg = "Sorry but there was an error: ";$("#dvError").html(msg + xhr.status + " " + xhr.statusText);}});return false;});
Như bạn có thể nhìn thấy trong đoạn mã trên, bạn có thể dễ dàng thực hiện gọi đến bất kỳ trang nào bằng cách di chuyển qua nó một Url cố định. Chức năng Call Back cung cấp Control nhiều hơn và cho phép xử lý   lỗi bất kỳ bằng cách sử dụng giá trị trạng thái.

Một trong những điều quan trọng về phương pháp tải là nó cho phép tải một phần của một trang chứ không phải là toàn bộ trang. Vì vậy, để thu hồi một phần duy nhất của trang, cuộc gọi vẫn giữ nguyên nhưng url là:
var loadUrl = "TestPage.htm # dvContainer";
Vì vậy, bằng việc thông qua địa chỉ trên phương thức tải nó chỉ tải các nội dung của thẻ div có id=dvContainer. Kiểm tra đoạn code sau:


Firebug cho thấy response được trả lại khi chúng ta gọi trang theo phương thức tải.

Tính năng quan trọng:
  • Cho phép thực hiện gọi với cả hai Request Get và Post
  • Cho phép tải các phần của trang.
getJSON

Một phương thức cho phép thu hồi các dữ liệu JSON bằng cách thực hiện gọi Ajax đến trang. Phương thức này chỉ cho phép di chuyển các tham số bằng cách sử dụng phương thức được đăng tải tham số là không được phép. Một điều nữa là phương thức này cung cấp phản ứng bằng cách sử dụng định dạng JSON.

var jsonUrl = "Json.htm";$("#btnJson").click(function () {$("#dvJson").html(ajax_load);$.getJSON(jsonUrl, function (json) {var result = json.name;$("#dvJson").html(result);});return false;});

Đoạn mã trên làm cho việc sử dụng các chức năng getJSON và hiển thị dữ liệu json lấy từ trang. Sau đây là dữ liệu json trả về bởi các tập tin Json.htm.
{"name": "Hemang Vyas","age" : "32","sex": "Male"}
Bên dưới là hình ảnh hiển thị dữ liệu json được trả về như response:


Tình năng quan trọng:
- Chỉ gửi dữ liệu sử dụng phương thức Get; không chấp nhận phương thức Post.
- Trả lại Response data.

Get
Cho phép chấp nhận gửi một yêu cầu Ajax với phương thức Get. Xử lý các phản ứng trong nhiều định dạng bao gồm xml, html, Text, script, json, và jonsp.

var getUrl = "GETAndPostRequest.aspx";$("#btnGet").click(functi on () {$("#dvGet").html(ajax_load);$.get(getUrl, { Name: "Pranay" }, function (result) {$("#dvGet").html(result);});return false;});
Trong mã tôi di chuyển qua các tham số Name và các trang bằng cách sử dụng yêu cầu có được. Về phía server, bạn có thể nhận được giá trị của tham số Name trong một đối tượng request querycollection.

if (Request.QueryString["Name"]!=null){txtName.Text = Request.QueryString["Name"].ToString();}
Firebug cho thấy các tham số thông qua yêu cầu Get và giá trị của tham số này pranay.


Tính năng quan trọng:
- Có thẻ xử lý bất kỳ loại dữ liệu Response.
- Gửi dữ liệu bằng cách sử dụng phương thức duy nhất là get

Post

Cho phép thực hiện một yêu cầu Ajax với phương thức post. Xử lý các phản ứng trong nhiều định dạng bao gồm xml, html, Text, script, json, và jonsp. (Post) giống như nhận được nhưng chỉ gửi dữ liệu bằng cách sử dụng các phương thức Post.

var postUrl = "GETAndPostRequest.aspx";$("#btnPost").click(funct ion () {$("#dvPost").html(ajax_load);$.post(postUrl, { Name: "Hanika" }, function (result) {$("#dvPost").html(result);});return false;});
Trong mã tôi di chuyển qua các tham số Name và các trang bằng cách sử dụng Request Post.

Về phía server, bạn có thể nhận được giá trị của tham số Name trong đối tượng response formcollection.

if (Request.Form["Name"] != null){ txtName.Text = Request.Form["Name"].ToString();} Firebug cho thấy các tham số thông qua yêu cầu Get và giá trị của tham số này là Hanika.


Tính năng quan trọng:
- Có thể xử lý bất lỳ loại dữ liệu.
- Gửi dữ liệu bằng cách sử dụng phương thức duy nhất là Post

Ajax

Cho phép thực hiện cuộc gọi Ajax. Phương thức này cung cấp kiểm soát nhiều hơn tất cả các phương thức khác mà chúng ta đã thấy. Bạn có thể tìm ra sự khác biệt bằng cách kiểm tra danh sách các tham số.

var ajaxUrl = "Json.htm";$("#btnAjax").click(function () {$("#dvAjax").html(ajax_load);$.ajax({type: "GET", //GET or POST or PUT or DELETE verburl: ajaxUrl, // Location of the servicedata: "", //Data sent to servercontentType: "", // content type sent to serverdataType: "json", //Expected data format from serverprocessdata: true, //True or Falsesuccess: function (json) {//On Successfull service callvar result = json.name;$("#dvAjax").html(result);},error: ServiceFailed// When Service call fails});return false;});
Trong đoạn mã trên, bạn có thể nhìn thấy tất cả các thông số và chú thích dành cho mỗi tham số bằng việc mô tả mục đích.

Firebug hiển thị trang trở lại gọi dữ liệu json và chức năng Ajax xử lý các respose như JSON bởi vì trong mã kiểu dữ liệu = json.


Tính năng quan trọng:
- Cung cấp kiểm soát nhiều hơn việc gửi dữ liệu và yêu cầu dữ liệu.
- Cho phép xử lý lỗi xảy ra trong suốt quá trình call.
- Cho phép xử lý dữ liệu nếu gọi đến trang thành công

Tóm tắt:
Mỗi phương thức của Jquery là khác nhau. Vì vậy, việc sử dụng cho từng mục đích cũng khác nhau.
Nguồn bài viết: Dngaz.com

Monday, December 9, 2013

Posted by Max on Wednesday, September 01, 2010 6:50 AM
If you need to get the identity value from a query, you can use SCOPE_IDENTITY().

In your stored procedure add:

SET @id=SCOPE_IDENTITY()
RETURN @id

and when you create the procedure, declare:

@id int output

-Example-

In this example we create a Stored Procedure to add a new category (idcategory,categoryname). The procedure return the identity value, in this case the id of the category:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[anm_InsertCategory] (
@categoryname nvarchar(256),
@idcategory int output
)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [anm_Categories] ([category]) VALUES (@categoryname)
SET @idcategory=SCOPE_IDENTITY()
RETURN @idcategory
END

In this way we use the stored procedure in C#:

string strConn = ConfigurationManager.ConnectionStrings["csname"].ToString();
SqlConnection conn = new SqlConnection(strConn);
SqlCommand command = new SqlCommand("anm_InsertCategory", conn);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@categoryname", SqlDbType.NVarChar).Value = cat_name;
command.Parameters.Add("@idcategory", SqlDbType.Int).Direction = ParameterDirection.Output;
conn.Open();
command.ExecuteNonQuery();
string idcat = command.Parameters["@idcategory"].Value.ToString();


Now the value of the string idcat is the identity value of the new category just added and you can use this value in another query.

Friday, September 6, 2013

Copy and paste this code into proxy.ashx.cs. using System; using System.IO; using System.Net; using System.Web; namespace WebApplication1 { public class proxy : IHttpHandler { public void ProcessRequest(HttpContext context) { HttpResponse response = context.Response; // Check for query string string uri = Uri.UnescapeDataString(context.Request.QueryString.ToString()); if (string.IsNullOrWhiteSpace(uri)) { response.StatusCode = 403; response.End(); return; } // Filter requests if (!uri.ToLowerInvariant().Contains("wikimedia.org")) { response.StatusCode = 403; response.End(); return; } // Create web request WebRequest webRequest = WebRequest.Create(new Uri(uri)); webRequest.Method = context.Request.HttpMethod; // Send the request to the server WebResponse serverResponse = null; try { serverResponse = webRequest.GetResponse(); } catch (WebException webExc) { response.StatusCode = 500; response.StatusDescription = webExc.Status.ToString(); response.Write(webExc.Response); response.End(); return; } // Exit if invalid response if (serverResponse == null) { response.End(); return; } // Configure reponse response.ContentType = serverResponse.ContentType; Stream stream = serverResponse.GetResponseStream(); byte[] buffer = new byte[32768]; int read = 0; int chunk; while ((chunk = stream.Read(buffer, read, buffer.Length - read)) > 0) { read += chunk; if (read != buffer.Length) { continue; } int nextByte = stream.ReadByte(); if (nextByte == -1) { break; } // Resize the buffer byte[] newBuffer = new byte[buffer.Length * 2]; Array.Copy(buffer, newBuffer, buffer.Length); newBuffer[read] = (byte)nextByte; buffer = newBuffer; read++; } // Buffer is now too big. Shrink it. byte[] ret = new byte[read]; Array.Copy(buffer, ret, read); response.OutputStream.Write(ret, 0, ret.Length); serverResponse.Close(); stream.Close(); response.End(); } public bool IsReusable { get { return false; } } } } Without closing the web browser, append the name of the proxy service and the web resource (highlighted below) that you need access to. For example: http://localhost:51220/proxy.ashx?http://upload.wikimedia.org/wikipedia/en/f/f0/New-esri-logo.jpg