Cells[].Text or Cells[].Controls[0]

J

Joel Finkel

Folks,

The following code illustrates two methods of obtaining the contents of a DataGrid Item. The function has been bound to the ItemCommand of the DataGridCommandEventHandler. It is invoked by clicking a button within the row.

Note that because I am loathe to hard-code column numbers, as they may change, I at least make the code a bit easier to maintain by setting constants to represent the column numbers I need to use.

In the first example, I get the Address by simply using the Text attribute of e.Item.Cells[].

In the second example, which is the more common in the documentation, I use the two-step process of obtaining the object, e.Item.Cells[].Columns[0] as a TextBox, and then getting its Text attribute.

QUESTION: Why is the second example more common in the documentation when the first method seems to work, is easier to code, and is faster?

QUESTION: Am I missing something terribly important here?

Thanks!

/Joel Finkel
(e-mail address removed)


private void DataGrid1_ItemCommand(object sender, DataGridCommandEventArgs e)

{
const int k_p_Address = 7;
const int k_p_City = 8;
const int k_p_State = 9;
const int k_p_Zip = 10;
const int k_p_Country = 11;

try

{
myAddressCorrector.Address = e.Item.Cells[k_p_Address].Text;

TextBox CityText = (TextBox)e.Item.Cells[k_p_City].Controls[0];
myAddressCorrector.City = CityText.Text;

TextBox StateText = (TextBox)e.Item.Cells[k_p_State].Controls[0];
myAddressCorrector.State = StateText.Text;

TextBox ZipText = (TextBox)e.Item.Cells[k_p_Zip].Controls[0];
myAddressCorrector.Zip = ZipText.Text;

TextBox CountryText = (TextBox)e.Item.Cells[k_p_Country].Controls[0];
myAddressCorrector.Country = CountryText.Text;

myAddressCorrector.CorrectAddress();

}

catch (Exception ex)

{
Label1.Text = ex.ToString();
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,440
Members
44,830
Latest member
ZADIva7383

Latest Threads

Top