Monday, January 29, 2007

Here's another quick little utility code I use to get the page control and their respective contents as string (StringBuilder to be precise). I collect this data in case of any exceptions/errors that I catch which are unforeseen and then either email or log for my later review. I create a helper class for the app and put some utility methods like these in that. Here is how I do in this case:

public StringBuilder getData(Page curPage)

{

//Get Page Data:

StringBuilder sbldrPageData = new StringBuilder();

foreach (Control cntrl in curPage.Controls)

{

buildCntrlData(cntrl, ref sbldrPageData);

}

return sbldrPageData;

}

private void buildCntrlData(Control myControl, ref StringBuilder sbldrPageData)

{

foreach (Control cntrl in myControl.Controls)

{

if (cntrl is TextBox)

sbldrPageData.Append(" ^" + ((TextBox)cntrl).UniqueID.ToString() +

" = " + ((TextBox)cntrl).Text);

else if (cntrl is DropDownList)

sbldrPageData.Append(" ^" + ((DropDownList)cntrl).UniqueID.ToString() +

" = " + ((DropDownList)cntrl).SelectedValue.ToString());

else if (cntrl is CheckBox)

{

if (((CheckBox)cntrl).Checked)

sbldrPageData.Append(" ^" + ((CheckBox)cntrl).UniqueID.ToString() + " = Y");

else

sbldrPageData.Append(" ^" + ((CheckBox)cntrl).UniqueID.ToString() + " = N");

}

else if (cntrl is RadioButtonList)

sbldrPageData.Append(" ^" + ((RadioButtonList)cntrl).UniqueID.ToString() +

" = " + ((RadioButtonList)cntrl).SelectedValue);

//Call for additional controls:

if (cntrl.HasControls())

buildCntrlData(cntrl, ref sbldrPageData);

}

}


Love coding!

No comments: