DataItemTemplate trong DevExpress GridView

1. aspx

<dx:ASPxGridView ID=”ASPxGridView1″ runat=”server” AutoGenerateColumns=”False” KeyFieldName=”ID”
Width=”300px” ClientInstanceName=”grid”
onhtmlrowprepared=”ASPxGridView1_HtmlRowPrepared”>
<Columns>
<dx:GridViewDataTextColumn FieldName=”ID” ReadOnly=”True” VisibleIndex=”0″ Width=”50px”>
<EditFormSettings Visible=”False” />
</dx:GridViewDataTextColumn>
<dx:GridViewDataColumn FieldName=”Vehicle” Width=”110px”>
<DataItemTemplate>
<dx:ASPxComboBox id=”cboVehicle” runat=”Server” Width=”100px” >
</dx:ASPxComboBox>
</DataItemTemplate>
</dx:GridViewDataColumn>
</Columns>
</dx:ASPxGridView>

2. Code-Behind

protected void ASPxGridView1_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArgs e)
{
if (e.RowType != GridViewRowType.Data) return;

ASPxComboBox cbo = ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex, null, “cboVehicle”) as ASPxComboBox;

cbo.DataSource = this.ListVehicle;
cbo.ValueField = “VehicleID”;
cbo.TextField = “BienSoXe”;
cbo.DataBind();

cbo.SelectedItem = cbo.Items.FindByValue(e.GetValue(“Vehicle”).ToString());
}

 

3. Xem thêm tại các link sau

a. populate combobox on fly in gridview
b. Grid Editing – Edit Modes
c. ASPxGridView EditForm & Validation
d. ASPxGridView DisplayMode – combobox on the fly
e. GridViewDataColumn.DataItemTemplate Property
f. Custom client-side logic implementation in the grid with multi-row editing
g. Change row and data cell styles using events
h. GridView RowDataBound event

Phân trang DevExpress ASPxGridView sử dụng ObjectDataSource

1. aspx
<dx:ASPxGridView ID="grid" runat="server" DataSourceForceStandardPaging="True"
AutoGenerateColumns="False"
                DataSourceID="ods" KeyFieldName="ContactID">
                <Columns>
                   <dx:GridViewDataTextColumn FieldName="FirstName" VisibleIndex="1">
                    </dx:GridViewDataTextColumn>
                    <dx:GridViewDataTextColumn FieldName="LastName" VisibleIndex="2">
                    </dx:GridViewDataTextColumn>
                    <dx:GridViewDataTextColumn FieldName="EmailAddress" VisibleIndex="3>
                    </dx:GridViewDataTextColumn>
                </Columns>
            </dx:ASPxGridView>
            <asp:ObjectDataSource ID="ods" runat="server" SortParameterName="sortColumn"
EnablePaging="true"
                StartRowIndexParameterName="startRecord" MaximumRowsParameterName="maxRecords"
                SelectCountMethod="GetPeopleCount" SelectMethod="GetPeople"
TypeName="People"></asp:ObjectDataSource>

2. Business Object
public class People
{
public static DataTable GetPeople(Int32 startRecord, Int32 maxRecords, String sortColmn)
private static void VerifySortColumns(string sortColumns);
public static Int32 GetPeopleCount() ;
}
3. Chi tiết tại:
http://www.devexpress.com/Support/Center/p/E2672.aspx

4.Paging and filtering with objectdatasource
http://www.devexpress.com/Support/Center/p/B136402.aspx?searchtext=LinqDataSourceServerMode&p=T4|P5|57

Phân trang DevExpress ASPxGridView

1. http://community.devexpress.com/forums/t/56484.aspx?PageIndex=1

2. http://community.devexpress.com/blogs/ctodx/archive/2007/08/04/put-xtragrid-into-overdrive-by-using-xpo-with-large-datasets.aspx

3. http://www.devexpress.com/Support/Center/e/E166.aspx

4. http://www.devexpress.com/Support/Center/p/E2672.aspx (Đọc thằng này)

5. http://www.codeproject.com/Messages/3871645/ObjectDataSource-for-DevExpress-ASPxGtridView-with.aspx (Đọc thằng này)

Phân trang trong GridView (Mức Stored Procedure)

Chi tiết tại đây: http://www.codeproject.com/KB/webforms/ASPEnhancedGridView.aspx#

Sử dụng CustomValidator hiển thị thông báo trong ASP.NET

1. Không muốn Control Validadation hiển thị sau Control muốn validate
– Dùng thuộc tính Display =”None”

<asp:RequiredFieldValidator ID=”reqCompany” runat=”Server” Display=”None” ControlToValidate=”ddlCompany”
ErrorMessage=”Bạn phải chọn công ty” SetFocusOnError=”true” InitialValue=””></asp:RequiredFieldValidator>

2. aspx

–  Thêm control CustomValidator vào trang .aspx

<asp:ValidationSummary ID=”valSummary” runat=”Server” ShowSummary=”true” />
<asp:CustomValidator ID=”customMessage” runat=”Server”>&nbsp;</asp:CustomValidator>

3. aspx.cs

– Trong PageLoad:

+ Set thuộc tính IsValid = true (Hợp lệ)

+ ErrorMessage = string.Empty (Gán về trống).

protected void Page_Load(object sender, EventArgs e)
{
customMessage.IsValid = true;
customMessage.ErrorMessage = string.Empty;

}

– Sau khi Save hoặc Update

+  Set IsValid = false (Không hợp lệ)

+ ErrorMessage =”Nội dung muốn thông báo.”

protected void btnSave_Click(object sender, EventArgs e)
{
if (!Page.IsValid) return;

customMessage.ErrorMessage = “Nhập thành công.”;
customMessage.IsValid = false;

ddlCompany.SelectedIndex = 0;
txtDetail.Text = string.Empty;
}

 

updatesofts.com

1. Xinh Ko Chịu Nổi
http://www.updatesofts.com/forums/showthread.php?t=30505

2. Ảnh buồn cười tại Việt Nam 
http://www.updatesofts.com/forums/showthread.php?t=193694

3. tnxm.net
tnxm.net

Quản lý thời gian có phải ý tưởng hay?

Ai trong chúng ta cũng ủng hộ việc sử dụng thời gian hiệu quả. Nhưng khi nói tới vấn đề “quản lý thời gian”, ta thường bỏ qua một bức tranh lớn hơn về nó.

Dù lĩnh vực công tác hay học tập của bạn là gì, hẳn bạn luôn bắt gặp ý tưởng cần phải “quản lý thời gian”. Có thể bạn đã mua sách nói về điều đó, hoặc bạn từng tham gia vào các khóa học như vậy. Bạn cũng có thể đã viết hồ sơ xin việc mà trong đó, nhấn mạnh “những kỹ năng quản lý thời gian tuyệt vời” của mình.

Tất nhiên, ai trong chúng ta cũng ủng hộ việc sử dụng thời gian hiệu quả. Nhưng khi nói tới vấn đề “quản lý thời gian”, ta thường bỏ qua một bức tranh lớn hơn về nó.

Nếu mọi nỗ lực của bạn để hiệu quả dường như chẳng mấy tác dụng thì vấn đề có lẽ không phải ở bạn. Có lẽ, mấu chốt của việc này nằm ở cách thức bạn nhìn nhận về thời gian.

Và đây là một kiểm nghiệm thực tiễn:

Không phải mọi thời khắc đều quan trọng như nhau

Ta sẽ thấy khá thường xuyên những lời khuyên về quản lý thời gian đều mặc định, mọi thời khắc đều như nhau: một giờ đồng hồ luôn là 60 phút làm việc hiệu quả.

Có thể thấy, quan niệm này bất chấp thực tiễn đời sống. Tất cả chúng ta đều có những thời điểm lên cao hay xuống thấp về mặt năng lượng (cả về tinh thần lẫn thể chất) trong một ngày. Chẳng hạn, bạn sẽ thấy đầu óc lơ tơ mơ lúc sáng sớm nhưng lại tập trung cực tốt trong khoảng từ 10 đến 12 giờ sáng.

Bạn luôn muốn làm việc tốt nhất trong khoảng thời gian tối ưu nhất. Đôi khi, thực tiễn này trái ngược hẳn với những lời khuyên về quản lý thời gian theo cách truyền thống. Nếu bạn làm việc bắt đầu từ 8 giờ sáng, nhưng đầu óc bạn hình như lại chỉ thực sự tỉnh táo vào lúc 10h, thì việc bạn dành ra 2 giờ đầu ngày đó giải quyết số email cũng tốt chứ sao. Do đó, đừng băn khoăn quá nếu cuốn sách bạn vừa đọc nói rằng, bạn không nên check mail trước bữa trưa.

Vậy lúc nào là thời gian làm việc hiệu quả nhất của bạn? Bạn có thể sắp xếp lại ngày làm việc của mình như thế nào để bạn có thể làm việc tốt nhất lúc đó?

Bạn không thể làm việc hiệu quả được 8 tiếng mỗi ngày

Hầu hết những công việc làm giờ hành chính đều có cách quy định về thời gian lao động từ 8 đến 9 tiếng. Nếu bạn là sinh viên hay người làm việc tự do, bạn dễ có cảm tưởng mình cũng nên làm việc liên tục trong khoảng thời gian ấy.

Nhưng sự thật là bạn không thể làm như thế. Nếu công việc của bạn đòi hỏi mức độ tập trung cao hay rất cần phải sáng tạo, như nghề đồ họa hay lập trình chẳng hạn, bạn cũng chỉ có thể thực sự làm được 3 đến 4 giờ lao động hiệu quả mỗi ngày.

Đừng tự cảm thấy day dứt về điều này, mà hãy chuẩn bị tâm lý về nó. Khi bạn đang làm việc, hãy tập trung ở mức tốt nhất có thể, bạn sẽ rất ngạc nhiên là tại sao mình có thể hoàn thành được khá nhiều việc như vậy trong vòng vài giờ đồng hồ.

Khi bạn lên danh sách những việc cần làm mỗi ngày, hãy tập trung vào 2 hoặc 3 đầu việc lớn trong những giờ làm việc hiệu quả nhất. Và rồi khi cảm thấy năng lượng bắt đầu hao hụt, bạn có thể thả lỏng vào những việc nhỏ nhặt hơn.

Quản lý cuộc đời chứ không phải thời gian của bạn

Nếu bạn là người quản lý thời gian giỏi, bạn nên có một loạt những kỹ năng hữu ích như thế này:

* Tập trung vào công việc và tránh sự trì hoãn.

* Biết ưu tiên các việc cần giải quyết một cách đúng đắn và hiệu quả.

* Tránh đi những khoảng thời gian lãng phí (chẳng hạn, bạn có thể nghe sách nói trong lúc di chuyển).

Vấn đề cho thấy, việc quản lý thời gian không thể giúp bạn tiến xa hơn nếu bạn đang giải quyết những việc không phù hợp. Nếu bạn đang làm một công việc tẻ nhạt, bế tắc, có thể bạn vẫn làm việc hiệu quả như mong muốn, song nó cũng không thể giúp bạn đạt được mục tiêu. Nếu bạn cứ tiếp tục những dự án mới mà chẳng bao giờ kết thúc chúng, thì những thời giờ bạn bỏ ra cũng chẳng có giá trị là mấy.

Do đó, hãy đừng nghĩ quá nhiều về việc quản lý thời gian, hãy tập trung cho việc quản lý cuộc đời của bạn.

Những nhiệm vụ nào trong danh sách bạn có thể loại bỏ? Có điều gì mới bạn nên làm để giúp mình đạt được những mục tiêu đặt ra?

KHUYẾN KHÍCH VÀ HƯỚNG DẪN BÉ ĐẶT VẤN ĐỀ VÀ NÊU CÂU HỎI

Bạn có bao giờ cáu giận vì đứa con của mình cứ liên tục “quấy” bạn bằng những câu hỏi, thậm chí một câu hỏi đó nhưng hỏi đi hỏi lại nhiều lần. Bạn nên mừng với những câu hỏi đó. Nó chứng tỏ đứa bé đang phát triển tốt và rất ham học hỏi. Bạn nên khuyến khích và hướng dẫn bé đặt vấn đề và nêu câu hỏi.

Hướng dẫn trẻ cách đặt các câu hỏi

Ba tuổi là giai đoạn phát triển đặc biệt của trẻ. Lúc này tính cách của trẻ đang dần được định hình, vì thế trẻ sẽ tỏ ra bướng bỉnh, thích làm theo ý mình, nói nhiều hơn và đặc biệt là trẻ sẽ hỏi rất nhiều, thậm chí vừa hỏi xong lại hỏi lại.

Trẻ nói nhiều, hỏi nhiều như vậy đôi khi làm người lớn mất kiên nhẫn và có thế dẫn đến quát mắng trẻ… Việc trẻ hỏi nhiều có thể làm người lớn khó chịu, nhưng đó là cách chứng tỏ con của bạn đang phát triển. Vậy, cha mẹ cần hiểu rõ tâm lý lứa tuổi của trẻ để có cách ứng xử phù hợp.
Khuyến khích và hướng dẫn bé đặt vấn đề và nêu câu hỏi
Bạn nên khuyến khích bé đặt vấn đề và hướng dẫn bé đặt câu hỏi
Hỏi nhiều là thông minh?

Trẻ càng thông minh thì càng ham hỏi. Và để hiểu được mọi thứ trong thế giới này thì không có con đường nào hay hơn là biết cách đưa ra câu hỏi hay. Vậy, kỹ năng hỏi có vai trò rất quan trọng trong cuộc sống của trẻ, vì thế khi trẻ lên ba tuổi là giai đoạn tốt nhất để bạn hướng dẫn trẻ cách đặt câu hỏi với mọi người trong các tình huống cụ thể.

Nếu vì quá bận rộn với công việc mà thiếu đi sự quan tâm, chăm sóc đến con, không khuyến khích trẻ đưa ra các câu hỏi cũng như không trả lời hoặc trả lời qua quýt các câu hỏi mà trẻ đưa ra thì sẽ khiến con bạn dần mất đi nhu cầu học hỏi và trẻ sẽ trở nên tự ti, thụ động, kém hoạt bát, sau này lớn lên sẽ không dám đặt câu hỏi với thầy cô để hiểu sâu các vấn đề mà mình quan tâm; không dám đặt câu hỏi với chính mình để tự vấn và tìm cách giải quyết vấn đề một cách hiệu quả…

Trẻ lặp lại các câu hỏi

Ở lứa tuổi lên ba, trẻ thường lặp lại các câu hỏi, vì thế có thể trẻ vừa hỏi xong lại dùng chính câu hỏi ấy để hỏi cha mẹ. Có rất nhiều lý do khiến trẻ lặp lại các câu hỏi như vậy. Có thể là do trẻ chưa nghe rõ, chưa hiểu ý trả lời của người lớn và cũng có thể chỉ đơn giản là trẻ muốn được nói chuyện, gần gũi cha mẹ; muốn cha mẹ quan tâm, để ý đến mình hơn…

Lên ba là lứa tuổi trẻ đi mẫu giáo nên cả ngày xa phải xa cha mẹ, do vậy trẻ sẽ cảm thấy thiếu đi tình thương yêu, sự quan tâm của cha mẹ nên khi gặp cha mẹ, trẻ muốn được ôm hôn, nói cười, nhìn vào mắt của trẻ… Khi trẻ được thoả mãn các nhu cầu của mình, trẻ sẽ chơi ngoan và đỡ quấy rầy người lớn. Cha mẹ nên hiểu tâm lý này của trẻ và dành thời gian để trò chuyện, ôm ấp trẻ… để trẻ thỏa mãn và yên tâm khi chơi.

Ngược lại, nếu cha mẹ quá bận rộn với công việc, không chú ý đến trẻ, trẻ sẽ tìm mọi cách để thu hút sự quan tâm, chú ý của cha mẹ như: ôm chân, nhõng nhẽo, đòi hỏi cái này, cái kia và liên tục đưa ra các câu hỏi để buộc cha mẹ phải nói chuyện cùng…

Giúp trẻ biết cách đưa ra các câu hỏi

Đây là một việc vô cùng cần thiết đối với trẻ. Cha mẹ có thể trẻ dạy đưa ra các câu hỏi đơn giản như: ai, cái gì, ở đâu, khi nào, tại sao, như thế nào? Sáu câu hỏi cơ bản này sẽ giúp ích cho trẻ rất nhiều trong việc khám phá thế giới quanh mình. Sau khi hướng dẫn, cha mẹ hãy cùng trẻ thực hành trong mọi tình huống có thể.

Lưu ý: Khi trẻ đưa ra các câu hỏi ngây ngô, cha mẹ tuyệt đối không được cười hoặc chê bai trẻ mà cần khen ngợi và giúp trẻ đặt lại câu hỏi cho đúng, trả lời trẻ một cách đơn giản, dễ hiểu.

Với trẻ ít nói, người lớn cần đặt câu hỏi cho trẻ trả lời, từ đó khuyến khích trẻ đặt câu hỏi và trẻ sẽ học được cách đặt câu hỏi từ người lớn. Ví dụ, cha mẹ có thể hỏi con: “Con có biết tại sao cần uống sữa không?”, “Con ơi, hôm nay con đi học có vui không?… và chúng ta sẽ cùng trẻ trả lời.

Cha mẹ nên trả lời các câu hỏi của trẻ như thế nào?

Nếu trẻ chủ động đưa ra các câu hỏi thì người lớn cần phải mừng rỡ vì trẻ là người ham học hỏi, khám phá. Do vậy, cha mẹ dành nhiều thời gian để gần gũi và quan tâm đến trẻ.

Thông qua các câu hỏi, trẻ sẽ học hỏi được nhiều điều hay, vì thế cha mẹ cần hướng dẫn trẻ cách đặt câu hỏi ngay từ khi còn nhỏ, giúp trẻ hình thành thói quen khi muốn tìm hiểu một vấn đề nào đó.

public static class Utilities

1. CloneObject

/// <summary>
/// Helper method to copy any object that is serializable.
/// </summary>
/// <param name=”obj”>ISerializable class to clone.</param>
/// <returns>Clone of object.</returns>
public static T CloneObject<T>(T obj) where T : class, ISerializable
{
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(memoryStream, obj);
memoryStream.Seek(0, SeekOrigin.Begin);
return serializer.Deserialize(memoryStream) as T;
}

2. Convert List<T> to DataTable

/// <summary> Chuyen tu IList sangDataTable.</summary>
/// <returns> Return the class DataTable </returns>
public static DataTable ConvertTo<T>(IList<T> lst)
{
//create DataTable Structure
DataTable tbl = CreateTable<T>();
Type entType = typeof(T);

PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(entType);
//get the list item and add into the list
foreach (T item in lst)
{
DataRow row = tbl.NewRow();
foreach (PropertyDescriptor prop in properties)
{
row[prop.Name] = prop.GetValue(item);
}
tbl.Rows.Add(row);
}

return tbl;
}

3. CreateTable <T>

/// <summary>
/// Tao ra DataTable tuong ung voi Object dang T.
/// </summary>
/// <typeparam name=”T”>Custome Class</typeparam>
/// <returns></returns>
public static DataTable CreateTable<T>()
{
//T –> ClassName
Type entType = typeof(T);
//set the datatable name as class name
DataTable tbl = new DataTable(entType.Name);
//get the property list
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(entType);
foreach (PropertyDescriptor prop in properties)
{
//add property as column
tbl.Columns.Add(prop.Name, prop.PropertyType);
}
return tbl;
}

4. EnumParse

/// <summary>
/// Phan tich 1 chuoi xem co ve Kieu Enum.
/// </summary>
/// <typeparam name=”T”></typeparam>
/// <param name=”s”></param>
/// <returns></returns>
public static T EnumParse<T>(string s)
{
if (!typeof(T).IsEnum)
{
throw new NotSupportedException(“T phai la 1 enum”);
}
return (T)Enum.Parse(typeof(T), s);
}

JavaScript Ebooks

Link tham khảo: http://www.flazx.us/result/31499/javascript

1. Pro JavaScript Design Patterns

Chi tiết tại đây: http://jsdesignpatterns.com/

Download Ebook tại đây: http://rapidlibrary.com/index.php?q=pro+javascript+design+patterns

2. JavaScript & DHTML Cookbook
http://trafficshare.eazyupload.net/d/sN3RdRD6

3. JavaScript Application Cookbook

http://trafficshare.eazyupload.net/d/N2d7Zapv

4. Wrox Ebook

http://www.wrox.com/WileyCDA/Section/id-WROX_SEARCH_RESULT.html?query=javascript