1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
using System;
using System.Web.UI.WebControls;
namespace MonoBoundFieldCompatibilityIssue
{
public partial class _Default : System.Web.UI.Page
{
#region [ -- Custom Column Definition -- ]
/// <summary>
/// Custom Column for the GridView
/// </summary>
class CustomColumn : BoundField
{
protected override void InitializeDataCell (DataControlFieldCell cell, DataControlRowState rowState)
{
if ((rowState & DataControlRowState.Edit) != DataControlRowState.Normal) {
TextBox textBox = new TextBox ();
cell.Controls.Add (textBox);
textBox.DataBinding += OnDataBindField;
} else
base.InitializeDataCell (cell, rowState);
}
}
#endregion
protected void Page_Load (object sender, EventArgs e)
{
if (IsPostBack) return;
BindGridView ();
}
protected void OnGridViewInit (object sender, EventArgs e)
{
CustomColumn column = new CustomColumn ();
column.DataField = BoundField.ThisExpression;
gridView.Columns.Add (column);
}
protected void OnGridViewRowEditing (object sender, GridViewEditEventArgs e)
{
gridView.EditIndex = e.NewEditIndex;
BindGridView ();
}
protected void OnGridViewEditCancelling (object sender, EventArgs e)
{
gridView.EditIndex = -1;
BindGridView ();
}
private void BindGridView ()
{
gridView.DataSource = new bool [2];
gridView.DataBind ();
}
}
}
|