Thursday, December 27, 2007

ASP.NET DataGrid questions

What is datagrid?
The DataGrid Web server control is a powerful tool for displaying information
from a data source. It is easy to use; you can display editable data in a
professional-looking grid by setting only a few properties. At the same time, the
grid has a sophisticated object model that provides you with great flexibility in
how you display the data.
What s the difference between the System.Web.UI.WebControls.DataGrid and
System.Windows.Forms.DataGrid ?
The Web UI control does not inherently support master-detail data structures. As
with other Web server controls, it does not support two-way data binding. If you
want to update data, you must write code to do this yourself. You can only edit
one row at a time. It does not inherently support sorting, although it raises events
you can handle in order to sort the grid contents. You can bind the Web Forms
DataGrid to any object that supports the IEnumerable interface. The Web Forms
DataGrid control supports paging. It is easy to customize the appearance and
layout of the Web Forms DataGrid control as compared to the Windows Forms
one.
How do you customize the column content inside the datagrid?
If you want to customize the content of a column, make the column a template
column. Template columns work like item templates in the DataList or Repeater
control, except that you are defining the layout of a column rather than a row.
How do you apply specific formatting to the data inside the cells?
You cannot specify formatting for columns generated when the grid s
AutoGenerateColumns property is set to true, only for bound or template
columns. To format, set the column s DataFormatString property to a stringformatting
expression suitable for the data type of the data you are formatting.
How do you hide the columns?
One way to have columns appear dynamically is to create them at design time, and
then to hide or show them as needed. You can do this by setting a column s
Visible property.
How do you display an editable drop-down list?
Displaying a drop-down list requires a template column in the grid. Typically, the
ItemTemplate contains a control such as a data-bound Label control to show the
current value of a field in the record. You then add a drop-down list to the
EditItemTemplate. In Visual Studio, you can add a template column in the
Property builder for the grid, and then use standard template editing to remove the
default TextBox control from the EditItemTemplate and drag a DropDownList
control into it instead. Alternatively, you can add the template column in HTML
view. After you have created the template column with the drop-down list in it,
there are two tasks. The first is to populate the list. The second is to preselect the
appropriate item in the list - for example, if a book s genre is set to fiction,
when the drop-down list displays, you often want fiction to be preselected.

How do you check whether the row data has been changed?
The definitive way to determine whether a row has been dirtied is to handle the
changed event for the controls in a row. For example, if your grid row contains a
TextBox control, you can respond to the control s TextChanged event. Similarly,
for check boxes, you can respond to a CheckedChanged event. In the handler for
these events, you maintain a list of the rows to be updated. Generally, the best
strategy is to track the primary keys of the affected rows. For example, you can
maintain an ArrayList object that contains the primary keys of the rows to update.

No comments: