ask: DataGrid> form> body> html> background: use system; using system.collections; using system.componentmodel; using system.data; using system.data.sqlclient; Using system.drawing; using system.web; using system.Web.SessionState; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.htmlcontrols;
Namespace 9CBS {/// /// WebForm 30 summary description. /// summary> public class WebForm30: System.Web.UI.Page {protected System.Web.UI.WebControls.DataGrid DataGrid1; private void Page_Load (object sender, System.EventArgs e) {// Here placed user code to initialize the page if (! IsPostBack) {BindGrid ();} CreateDataGrid (); // some settings DataGrid} protected void CreateDataGrid () {DataGrid1.AutoGenerateColumns = false; // do not auto-generated columns DataGrid1.CssClass = "border"; // border style DataGrid1.BorderWidth = 0; DataGrid1.CellSpacing = 1; DataGrid1.CellPadding = 5; DataGrid1.ItemStyle.CssClass = "item"; // common column style DataGrid1.HeaderStyle.CssClass = "header "; // head style DataGrid1.pagerstyle.cssclass =" header "; // footer style DataGrid1.DataKeyfield =" stuid "; // Primary key field DataGrid1.allowpaging = true; // Allow paging DataGrid1.pageSize = 5; / / page size DataGrid1.PagerStyle.Mode = PagerMode.NumericPages; // digital form tab EditCommandColumn ecc = new EditCommandColumn (); // update button column ecc.ButtonType = ButtonColumnType.PushButton; // push button ecc.EditText = "edit "; Ecc.canceltExt =" Cancel "; ECC.UpdateText =" Update "; // Button text DataGrid1.columns. Add (ecc); // Add button column DataGrid1.EditCommand = new DataGridCommandEventHandler (DataGrid1_EditCommand); DataGrid1.UpdateCommand = new DataGridCommandEventHandler (DataGrid1_UpdateCommand); DataGrid1.CancelCommand = new DataGridCommandEventHandler (DataGrid1_CancelCommand); // update, cancel, edit event registration DataGrid1 .PageIndexChanged = new System.Web.UI.WebControls.DataGridPageChangedEventHandler (DataGrid1_PageIndexChanged); // paging event registration, event noted here that the location registration code, can not be put BindGrid () in SetBind (); //} binding data
protected void BindGrid () {TemplateColumn tm = new TemplateColumn (); tm.ItemTemplate = new ColumnTemplate1 (); // common column tm.EditItemTemplate = new ColumnTemplate2 (); // edit column tm.HeaderText = "name"; DataGrid1. Columns.AddAt (0, tm); // first template increase TemplateColumn tm2 = new TemplateColumn column in the first row (); tm2.ItemTemplate = new ColumnTemplate3 (); tm2.EditItemTemplate = new ColumnTemplate4 (); tm2.HeaderText = "Academy"; DataGrid1.columns.addat (1, TM2); // Increase the first template column of the first template column in the second column DataGrid1.ItemDatabaseTABOUNDLERS.DATAGRIDITEMEVENTHANDLER (DataGrid1_itemdatabase); // Data binding event registration, event noted here that the location registration code SetBind ();} protected void SetBind () {SqlConnection conn = new SqlConnection (System.Configuration.ConfigurationSettings.AppSettings [ "conn"]); SqlDataAdapter da = new SqlDataAdapter ( "Select * from stu, depist = dep.depid", conn; dataset ds = new dataset (); da.fill (DS, "Table1"); this.DataGrid1.datasource = ds.tables [" Table1 "]; this.DataGrid1.databind ();
private void DataGrid1_ItemDataBound (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {SqlConnection conn = new SqlConnection (System.Configuration.ConfigurationSettings.AppSettings [ "conn"]); SqlDataAdapter da = new SqlDataAdapter ( "select * from dep ", conn); DataSet DS = New Dataset (); DA.FILL (DS," Table1 "); if (E.Item.itemType == ListItemType.editItem) {DropDownList DDL = (DropDownList) E.Item.FindControl "dep"); ddl.datasource = ds.tables ["Table1"]; ddl.datatextfield = "depname"; DDL.DataValuefield = "depid"; ddl.database (); ddl.items.FindByValue (Convert.Tostring . DataBinder.Eval (e.Item.DataItem, "depid"))) Selected = true;}} private void DataGrid1_EditCommand (object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {this.DataGrid1.EditItemIndex = e. Item.itemindex; bindgrid ();
Private void DataGrid1_cancelcommand (Object Source, System.Web.ui.WebControls.DataGridCommandeventArgs E) {this.DataGrid1.editItemIndex = -1; bindgrid ();
private void DataGrid1_UpdateCommand (object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {string uid = e.Item.UniqueID ":"; // careful not to miss the colon SqlConnection conn = new SqlConnection (System.Configuration.ConfigurationSettings.AppSettings [ "conn"]); SqlCommand comm = new SqlCommand ( "update stu set stuname = @ name, studepid = @ depid where stuid = @ id", conn); SqlParameter parm1 = new SqlParameter ( "@ name", SqlDbType.NVarChar , 50); PARM1.VALUE = Request.form [UID "Name"]. TOSTRING (); SQLParameter PARM2 = New SQLParameter ("@ depid", sqldbtype.int); parm2.value = request.form [UID "DEP" ] .Tostring () ;; sqlparameter parm3 = new sqlparameter ("@ id", sqldbtype.int); parm3.value = this.dataGrid1.DataKeys [E.Item.itemindex]; Comm.Parameters.Add (PARM1); Comm. .Parameters.Add (PARM2); Comm.Parameters.Add (PARM3); conn.open (); Comm.ExecutenonQuery (); conn.close (); this.dataGrid1.edititeMindex = -1; bindgrid (); // The reason why the previous (TextBox) E.Item.FindControl ("Name")). When you get the data, the DataGrid column is dynamically added, it is not available. ate void DataGrid1_PageIndexChanged (object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) {this.DataGrid1.CurrentPageIndex = e.NewPageIndex; BindGrid ();}
#Region Web Form Designer Generated Code Override Protected Void OnNit (Eventargs E) {// // Codegen: This call is required for the ASP.NET Web Form Designer. // InitializeComponent (); base.onit (e);} /// /// Designer Supports the required method - Do not use the code editor to modify the // / this method. /// summary> private () {this.load = new system.eventhandler (this.page_load);
} #Endregion}
public class ColumnTemplate1: ITemplate {public void InstantiateIn (Control container) {LiteralControl l = new LiteralControl (); l.DataBinding = new EventHandler (this.OnDataBinding); container.Controls.Add (l);} public void OnDataBinding (object Sender, Eventargs E) {LiteralControl L = (Literal Control) Sender; DataGridItem Container = (DataGridItem) L.NamingContainer; L.Text = ((DATAROWVIEW) Container.DataItem) ["stuname"]. Tostring ();}}
Public class columnTemplate2: itemplate {public void instantiatein (control container) {textbox t = new textbox (); t.width = 88; t.id = "name"; // Need to give an ID, in Request.form Take T.DATABINDING = New EventHandler (this.ondatabase); Container.Controls.Add (T);}
public void OnDataBinding (object sender, EventArgs e) {TextBox t = (TextBox) sender; DataGridItem container = (DataGridItem) t.NamingContainer; t.Text = ((DataRowView) container.DataItem) [ "stuname"] ToString (). ; // Bind the stuname field}}}
public class ColumnTemplate3: ITemplate {public void InstantiateIn (Control container) {LiteralControl l = new LiteralControl (); l.DataBinding = new EventHandler (this.OnDataBinding); container.Controls.Add (l);}
public void OnDataBinding (object sender, EventArgs e) {LiteralControl l = (LiteralControl) sender; DataGridItem container = (DataGridItem) l.NamingContainer; l.Text = ((DataRowView) container.DataItem) [ "depname"] ToString (). }}