|
reference:
/// <summary>
/// Summary description of WebForm2.
/// </ summary>
public class WebForm2: System.Web.UI.Page
{
private string strcon = "server = localhost; database = pubs; uid = sa; pwd = wang";
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load (object sender, System.EventArgs e)
{
if (! IsPostBack)
{
BindGrid ();
}
}
private void BindGrid ()
{
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection (strcon);
string sql = "select top 5 * from authors order by au_id desc";
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand (sql, con);
con.Open ();
DataGrid1.DataSource = cmd.ExecuteReader ();
DataGrid1.DataBind ();
con.Close ();
}
#region Web Form Designer Generated Code
override protected void OnInit (EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Forms designer.
//
InitializeComponent ();
base.OnInit (e);
}
/// <summary>
/// Designer supports required methods-don't use code editor to modify
/// The contents of this method.
/// </ summary>
private void InitializeComponent ()
{
this.DataGrid1.ItemCommand + = new System.Web.UI.WebControls.DataGridCommandEventHandler (this.DataGrid1_ItemCommand);
this.DataGrid1.ItemDataBound + = new System.Web.UI.WebControls.DataGridItemEventHandler (this.DataGrid1_ItemDataBound);
this.Load + = new System.EventHandler (this.Page_Load);
}
#endregion
private void DataGrid1_ItemCommand (object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.Item.ItemType == ListItemType.Footer)
{
if (e.CommandName == "edit")
{
for (int i = 0; i <DataGrid1.Items.Count; i ++)
{
TextBox t1 = new TextBox ();
t1 = (TextBox) DataGrid1.Items [i] .FindControl ("TextBox1");
TextBox t2 = new TextBox ();
t2 = (TextBox) DataGrid1.Items [i] .FindControl ("TextBox2");
string id = DataGrid1.Items [i] .Cells [0] .Text;
string sql = "update authors set au_fname = '" + t1.Text + "', au_lname = '" + t2.Text + "' where au_id = '" + id + "'";
if (Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery (strcon, CommandType.Text, sql)! = 1)
{
Response.Write ("Update failed!");
return;
}
//Response.Write("<Li>ID:"+DataGrid1.Items[i].Cells[0].Text);
//Response.Write("Update content 1: "+ t1.Text);
//Response.Write("Update content 2: "+ t2.Text);
}
BindGrid ();
}
}
}
private void DataGrid1_ItemDataBound (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//if(e.Item.ItemType == ListItemType.Footer)
// {
// Button b1 = (Button) e.Item.FindControl ("Button1");
//b1.Attributes.Add("onclick","return confirm ('Do you really want to update all?'); ");
//}
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
TextBox t1, t2;
t1 = (TextBox) e.Item.FindControl ("TextBox1");
t1.Attributes.Add ("onfocus", "this.className = 'edit'");
t1.Attributes.Add ("onblur", "this.className = 'noedit'");
t2 = (TextBox) e.Item.FindControl ("TextBox2");
t2.Attributes.Add ("onfocus", "this.className = 'edit'");
t2.Attributes.Add ("onblur", "this.className = 'noedit'");
}
}
}
HTML:
<! DOCTYPE HTML PUBLIC "-// W3C // DTD HTML 4.0 Transitional // EN">
<HTML>
<HEAD>
<title> WebForm2 </ title>
<meta content = "Microsoft Visual Studio .NET 7.1" name = "GENERATOR">
<meta content = "C #" name = "CODE_LANGUAGE">
<meta content = "JavaScript" name = "vs_defaultClientScript">
<meta content = "http://schemas.microsoft.com/intellisense/ie5" name = "vs_targetSchema">
<LINK href = "1.css" type = "text / css" rel = "stylesheet">
</ HEAD>
<body>
<form id = "Form1" method = "post" runat = "server">
<asp: datagrid id = "DataGrid1" runat = "server" CellPadding = "3" BackColor = "White" BorderWidth = "1px"
BorderStyle = "None" BorderColor = "# CCCCCC" AutoGenerateColumns = "False" ShowFooter = "True" ShowHeader = "False">
<FooterStyle ForeColor = "# 000066" BackColor = "White"> </ FooterStyle>
<SelectedItemStyle Font-Bold = "True" ForeColor = "White" BackColor = "# 669999"> </ SelectedItemStyle>
<ItemStyle ForeColor = "# 000066"> </ ItemStyle>
<HeaderStyle Font-Bold = "True" ForeColor = "White" BackColor = "# 006699"> </ HeaderStyle>
<Columns>
<asp: BoundColumn DataField = "au_id" HeaderText = "ID"> </ asp: BoundColumn>
<asp: TemplateColumn>
<ItemTemplate>
<asp: TextBox id = TextBox1 runat = "server" Text = '<% # DataBinder.Eval (Container.DataItem, "au_fname")%>' CssClass = "noedit">
</ asp: TextBox>
<asp: RequiredFieldValidator id = "RequiredFieldValidator1" runat = "server" ErrorMessage = "*!" ControlToValidate = "TextBox1"
EnableViewState = "False"> </ asp: RequiredFieldValidator>
</ ItemTemplate>
</ asp: TemplateColumn>
<asp: TemplateColumn>
<ItemTemplate>
<asp: TextBox id = TextBox2 runat = "server" Text = '<% # DataBinder.Eval (Container.DataItem, "au_lname")%>' CssClass = "noedit">
</ asp: TextBox>
<asp: RequiredFieldValidator id = "RequiredFieldValidator2" runat = "server" ErrorMessage = "*!" ControlToValidate = "TextBox2"
EnableViewState = "False"> </ asp: RequiredFieldValidator>
</ ItemTemplate>
<FooterTemplate>
<DIV align = "right">
<asp: Button id = "Button1" runat = "server" Text = "Update" CommandName = "edit"> </ asp: Button> <INPUT type = "reset" value = "Restore"> </ DIV>
</ FooterTemplate>
</ asp: TemplateColumn>
</ Columns>
<PagerStyle HorizontalAlign = "Left" ForeColor = "# 000066" BackColor = "White" Mode = "NumericPages"> </ PagerStyle>
</ asp: datagrid>
</ form>
</ body>
</ HTML> |
|