|
发表于 2020-2-10 12:45:01
|
显示全部楼层
参考:
/// <summary>
/// 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 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </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("更新失败!");
return;
}
//Response.Write("<Li>ID:"+DataGrid1.Items[i].Cells[0].Text);
//Response.Write("更新内容1:" + t1.Text);
//Response.Write("更新内容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('您真的要全部更新吗?');");
//}
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="更新" CommandName="edit"></asp:Button><INPUT type="reset" value="还原"> </DIV>
</FooterTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
</form>
</body>
</HTML>
|
|