编辑DataGrid控件(一)

转载 2006年05月20日 14:07:00
在DataGrid中任何位置添加<asp:EditCommandColumn></ asp:EditCommandColumn>就可以进行就地编辑,其中可以在EditCommandColumn中设置EditText,CancelText和UpdateText等属性,就可以对DataGird进行就地编辑了。

  我们以SQL Server2000中自带的数据库Northwind中表Employees为例。

  下面为能就地编辑的DataGrid控件:

 

  Edit.aspx:
  <asp:DataGrid Runat="server" CellPadding="2" CellSpacing="0" id="DataGrid1" Font-Name="Verdana"
 Font-Size="x-small" AutoGenerateColumns="False" BorderColor="black" BorderStyle="Solid" BorderWidth="1px"
 DataKeyField="EmployeeID">
  <HeaderStyle BackColor="brown" />
  <AlternatingItemStyle BackColor="palegoldenrod" />
  <ItemStyle BackColor="beige"></ItemStyle>
  <Columns>
    <asp:BoundColumn DataField="EmployeeID" HeaderText="ID" ReadOnly="True">
        <ItemStyle BackColor="lightblue" />
    </asp:BoundColumn>
    <asp:TemplateColumn HeaderText="Employee Name">
        <ItemTemplate>
   <%#DataBinder.Eval(Container.DataItem,"TitleOfCourtesy")+"<b>"+
    DataBinder.Eval(Container.DataItem,"FirstName")+"</b>"+
    DataBinder.Eval(Container.DataItem,"LastName")%>
 </ItemTemplate>
   </asp:TemplateColumn>
   <asp:BoundColumn DataField="title" HeaderText="Position" />
   <asp:BoundColumn DataField="Country" HeaderText="From" />
   <asp:EditCommandColumn CancelText="Cancel" EditText="Edit" UpdateText="Update" ButtonType="LinkButton">      
   </asp:EditCommandColumn>
  </Columns>
</asp:DataGrid>


Edit.aspx.cs
 private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if (!Page.IsPostBack)
   {
    UpdateView();
   }
  }

  private void UpdateView()
  {
   SqlConnection myconn=new SqlConnection("DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;");
   string strsql="SELECT employeeid, titleofcourtesy, firstname, lastname, title, country FROM Employees";
   SqlDataAdapter da=new SqlDataAdapter(strsql,myconn);
   DataSet ds=new DataSet();
   da.Fill(ds,"MyTable");
   DataGrid1.DataSource=ds.Tables["MyTable"];
   DataGrid1.DataBind();
  }

private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   DataGrid1.EditItemIndex=-1;
   UpdateView();
  }

  private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   DataGrid1.EditItemIndex=e.Item.ItemIndex;
   UpdateView();
  }

  private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   int iPostion=2;
   int iFrom=3;
   TextBox txtPostion=(TextBox)e.Item.Cells[iPostion].Controls[0];
   TextBox txtFrom=(TextBox)e.Item.Cells[iFrom].Controls[0];

   StringBuilder sb=new StringBuilder();
   sb.Append("Update Employees set ");
   sb.Append("Title=@Title,Country=@Country ");
   sb.Append("where EmployeeID=@EmployeeID ");
            SqlConnection myconn=new SqlConnection("DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;");
   SqlCommand cmd=new SqlCommand(sb.ToString(),myconn);

   SqlParameter p1=new SqlParameter("@EmployeeID",SqlDbType.Int);
   p1.Direction=ParameterDirection.Input;
   p1.Value=DataGrid1.DataKeys[e.Item.ItemIndex];
   cmd.Parameters.Add(p1);

   SqlParameter p2=new SqlParameter("@Title",SqlDbType.NVarChar,30);
   p2.Direction=ParameterDirection.Input;
   p2.Value=txtPostion.Text;
   cmd.Parameters.Add(p2);
           
   SqlParameter p3=new SqlParameter("@Country",SqlDbType.NVarChar,15);
   p3.Direction=ParameterDirection.Input;
   p3.Value=txtFrom.Text;
   cmd.Parameters.Add(p3);

   myconn.Open();
   cmd.ExecuteNonQuery();
   myconn.Close();
           
   DataGrid1.EditItemIndex=-1;
   UpdateView();   
  }
 

 如果你想把界面搞得花俏一些的话,可以用图片来代替文字。 

相关文章推荐

Flex控件_datagrid_编辑功能

1.datagrid编辑功能简介     当我们点击datagrid中的一个单元格进行编辑时,可结合使用一些组件,RadioButtonGroup、checkbox、ComboBox等     d...

市委组织部考核项目——利用EasyUi中可编辑的DataGrid控件对多行数据进行编辑并提交

市委组织部考核项目中需要录入原始数据,拿开发区的数据录入举例说明,见下图,需要给查询出的单位录入定量成绩和定性成绩,开始使用弹出框的形式逐条进行编辑,后来考虑如果每一条都需要弹出一次弹出框,每一条都需...

Datagrid控件

  • 2014年06月29日 21:59
  • 2KB
  • 下载

.net下功能強大的Datagrid控件!

  • 2006年02月23日 09:05
  • 3.97MB
  • 下载

使用JQuery EasyUI 中的DataGrid控件实现数据的分页(紧密结合上一篇博客)

1.dao接口 package yycg.base.dao.mapper; import java.util.List; import yycg.base.vo.SysuserCustom; i...

DataGrid控件介绍

DataGrid控件介绍 1. 引言 Rich UI中的DataGrid组件可以在表中显示一组行数据。本文将详细介绍DataGrid组件相关信息。 如果想要较好的理解DataGrid,你...
  • lcczzu
  • lcczzu
  • 2015年07月14日 11:37
  • 388

datagrid全选功能控件

  • 2012年05月25日 10:02
  • 5KB
  • 下载

VC++中DataGrid控件的使用

  • 2012年03月20日 14:14
  • 324KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编辑DataGrid控件(一)
举报原因:
原因补充:

(最多只允许输入30个字)