+2006-07-06 Konstantin Triger <kostat@mainsoft.com>
+
+ * GridView.cs: always create Header/Fotter rows, but render only when
+ ShowHeader/Footer is true. Compute Header/Footer rows from rows
+ collection.
+ * CheckBoxField.cs: add override to ApplyFormatInEditMode,
+ add ToolTip and Text to the created CheckBox,
+ wrap exception thrown in OnDataBindField in httpException.
+
2006-07-06 Konstantin Triger <kostat@mainsoft.com>
* DataControlField.cs,BoundField.cs: bug fixes found by BoundFieldTest.
[AspNetHostingPermissionAttribute (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class CheckBoxField : BoundField
{
- [EditorBrowsableAttribute (EditorBrowsableState.Never)]\r
- [BrowsableAttribute (false)]\r
- [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
+ [EditorBrowsableAttribute (EditorBrowsableState.Never)]
+ [BrowsableAttribute (false)]
+ [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
+ public override bool ApplyFormatInEditMode {
+ get { throw GetNotSupportedPropException ("ApplyFormatInEditMode"); }
+ set { throw GetNotSupportedPropException ("ApplyFormatInEditMode"); }
+ }
+
+ [EditorBrowsableAttribute (EditorBrowsableState.Never)]
+ [BrowsableAttribute (false)]
+ [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
public override bool ConvertEmptyStringToNull {
get { throw GetNotSupportedPropException ("ConvertEmptyStringToNull"); }
set { throw GetNotSupportedPropException ("ConvertEmptyStringToNull"); }
}
- [EditorBrowsableAttribute (EditorBrowsableState.Never)]\r
- [BrowsableAttribute (false)]\r
- [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
+ [EditorBrowsableAttribute (EditorBrowsableState.Never)]
+ [BrowsableAttribute (false)]
+ [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
public override string DataFormatString {
get { throw GetNotSupportedPropException ("DataFormatString"); }
set { throw GetNotSupportedPropException ("DataFormatString"); }
}
- [EditorBrowsableAttribute (EditorBrowsableState.Never)]\r
- [BrowsableAttribute (false)]\r
- [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
+ [EditorBrowsableAttribute (EditorBrowsableState.Never)]
+ [BrowsableAttribute (false)]
+ [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
public override bool HtmlEncode {
get { throw GetNotSupportedPropException ("HtmlEncode"); }
set { throw GetNotSupportedPropException ("HtmlEncode"); }
}
- [EditorBrowsableAttribute (EditorBrowsableState.Never)]\r
- [BrowsableAttribute (false)]\r
- [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
+ [EditorBrowsableAttribute (EditorBrowsableState.Never)]
+ [BrowsableAttribute (false)]
+ [DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]
public override string NullDisplayText {
get { throw GetNotSupportedPropException ("NullDisplayText"); }
set { throw GetNotSupportedPropException ("NullDisplayText"); }
bool editable = (rowState & (DataControlRowState.Edit | DataControlRowState.Insert)) != 0;
CheckBox box = new CheckBox ();
box.Enabled = editable && !ReadOnly;
+ box.ToolTip = HeaderText;
+ box.Text = Text;
cell.Controls.Add (box);
}
protected override void OnDataBindField (object sender, EventArgs e)
{
- DataControlFieldCell cell = (DataControlFieldCell) sender;
- CheckBox box = (CheckBox) cell.Controls [0];
- object val = GetValue (cell.BindingContainer);
- if (val != null) {
- box.Checked = (bool)val;
- if (!box.Visible)
- box.Visible = true;
+ try {
+ DataControlFieldCell cell = (DataControlFieldCell) sender;
+ CheckBox box = (CheckBox) cell.Controls [0];
+ object val = GetValue (cell.BindingContainer);
+ if (val != null) {
+ box.Checked = (bool) val;
+ if (!box.Visible)
+ box.Visible = true;
+ }
+ else
+ box.Visible = false;
+ }
+ catch (HttpException) {
+ throw;
+ }
+ catch (Exception ex) {
+ throw new HttpException (ex.Message, ex);
}
- else
- box.Visible = false;
}
protected override object GetDesignTimeValue ()
{
Table table;
GridViewRowCollection rows;
- GridViewRow headerRow;
- GridViewRow footerRow;
GridViewRow bottomPagerRow;
GridViewRow topPagerRow;
[BrowsableAttribute (false)]
public virtual GridViewRow FooterRow {
get {
- if (footerRow == null)
- footerRow = CreateRow (0, 0, DataControlRowType.Footer, DataControlRowState.Normal);
- return footerRow;
+ if (table != null) {
+ for (int index = table.Rows.Count - 1; index >= 0; index--) {
+ GridViewRow row = (GridViewRow) table.Rows [index];
+ switch (row.RowType) {
+ case DataControlRowType.Separator:
+ case DataControlRowType.Pager:
+ continue;
+ case DataControlRowType.Footer:
+ return row;
+ default:
+ break;
+ }
+ }
+ }
+ return null;
}
}
[BrowsableAttribute (false)]
public virtual GridViewRow HeaderRow {
get {
- if (headerRow == null)
- headerRow = CreateRow (0, 0, DataControlRowType.Header, DataControlRowState.Normal);
- return headerRow;
+ if (table != null) {
+ for (int index = 0, total = table.Rows.Count; index < total; index++) {
+ GridViewRow row = (GridViewRow) table.Rows [index];
+ switch (row.RowType) {
+ case DataControlRowType.Separator:
+ case DataControlRowType.Pager:
+ continue;
+ case DataControlRowType.Header:
+ return row;
+ default:
+ break;
+ }
+ }
+ }
+ return null;
}
}
table.Rows.Add (topPagerRow);
}
- if (ShowHeader) {
- headerRow = CreateRow (0, 0, DataControlRowType.Header, DataControlRowState.Normal);
- table.Rows.Add (headerRow);
- InitializeRow (headerRow, fields);
- }
+ GridViewRow headerRow = CreateRow (0, 0, DataControlRowType.Header, DataControlRowState.Normal);
+ table.Rows.Add (headerRow);
+ InitializeRow (headerRow, fields);
foreach (object obj in dataSource) {
DataControlRowState rstate = GetRowState (list.Count);
if (list.Count == 0)
table.Rows.Add (CreateEmptyrRow (fields.Length));
- if (ShowFooter) {
- footerRow = CreateRow (0, 0, DataControlRowType.Footer, DataControlRowState.Normal);
- table.Rows.Add (footerRow);
- InitializeRow (footerRow, fields);
- }
+ GridViewRow footerRow = CreateRow (0, 0, DataControlRowType.Footer, DataControlRowState.Normal);
+ table.Rows.Add (footerRow);
+ InitializeRow (footerRow, fields);
if (showPager && PagerSettings.Position == PagerPosition.Bottom || PagerSettings.Position == PagerPosition.TopAndBottom) {
bottomPagerRow = CreatePagerRow (fields.Length, dataSource);
{
switch (row.RowType) {
case DataControlRowType.Header:
+ if (!ShowHeader) continue;
if (headerStyle != null)headerStyle.AddAttributesToRender (writer, row);
break;
case DataControlRowType.Footer:
+ if (!ShowFooter) continue;
if (footerStyle != null) footerStyle.AddAttributesToRender (writer, row);
break;
case DataControlRowType.Pager:
}
[Test]
- [Category ("NotWorking")]
public void CheckBoxField_InitializeDataCell ()
{
PokerCheckBoxField field = new PokerCheckBoxField ();
}
[Test]
- [Category ("NotWorking")]
public void CheckBoxField_OnDataBindField ()
{
Page page = new Page ();
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (HttpException))]
public void CheckBoxField_OnDataBindFieldException ()
{
}
[Test]
- [Category ("NotWorking")]
[ExpectedException(typeof(NotSupportedException))]
public void CheckBoxField_GetApplyFormatInEditModeExeption ()
{
}
[Test]
- [Category ("NotWorking")]
[ExpectedException (typeof (NotSupportedException))]
public void CheckBoxField_SetApplyFormatInEditModeExeption ()
{
}
}
}
-#endif
\ No newline at end of file
+#endif