实现起来比较复杂,输入框不复杂,用编辑列就可以了,但是如果要想使用DropDownList等控件作为输入控件,会复杂点,难道主要在于更新的数据库里,如果你的DataGrid和数据库不绑定,那就没必要用DataGrid,如果要是绑定,用编辑列输入,如果想实现插入功能,还得结合SqlCommandBuild

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3134/3134358.xml?temp=.5690424帮忙看看!大哥们!急得很!
      

  2.   

    用这个方法可以为任意添加新行。
     C#
    if (e.Item.ItemType == ListItemType.Header)
    {
    DataGridItem dgi = new DataGridItem(0,-1,ListItemType.Header);
    DataGridItem dgi1= new DataGridItem(0,-1,ListItemType.Header);
    Table tb = new Table();
    tb = (Table)DataGrid1.Controls[0];
    tb.Rows.AddAt(0,dgi);
    tb.Rows.AddAt(1,dgi1);
    TableCell tc = new TableCell();
    TableCell tc1 = new TableCell();
    TableCell tc2 = new TableCell();
    TableCell tc22 = new TableCell();
    tc.Text = "ddd";
    tc.ColumnSpan = 1;
    dgi.Cells.Add(tc);
    tc1.Text = "ddd2";
    tc1.ColumnSpan = 1;
    dgi.Cells.Add(tc1);
    tc2.Text = "ddd";
    tc2.ColumnSpan = 1;
    dgi1.Cells.Add(tc2);
    tc22.Text = "ddd2";
    tc22.ColumnSpan = 1;
    dgi1.Cells.Add(tc22);

    }
      

  3.   

    aspx:
    <%@ Page language="c#" Codebehind="Update.aspx.cs" AutoEventWireup="false" Inherits="myWebSit.Test.Update" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <TITLE>Update</TITLE>
    <META name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <META name="CODE_LANGUAGE" Content="C#">
    <META name="vs_defaultClientScript" content="JavaScript">
    <META name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <BODY MS_POSITIONING="GridLayout">
    <FORM id="Form1" method="post" runat="server">
    <ASP:DATAGRID id="DataGrid1" AutoGenerateColumns="False" style="Z-INDEX: 101; LEFT: 96px; POSITION: absolute; TOP: 80px"
    runat="server" DataKeyField="code">
    <COLUMNS>
    <ASP:TEMPLATECOLUMN HeaderText="Code">
    <ITEMTEMPLATE>
    <ASP:TEXTBOX Runat="server" ID="txtCode"  ></ASP:TEXTBOX>
    </ITEMTEMPLATE>
    </ASP:TEMPLATECOLUMN>

    <ASP:TEMPLATECOLUMN HeaderText="Name">
    <ITEMTEMPLATE>
    <ASP:TEXTBOX ID="txtName" Runat="server"   ></ASP:TEXTBOX>
    </ITEMTEMPLATE>
    </ASP:TEMPLATECOLUMN>
    </COLUMNS>
    </ASP:DATAGRID>

    <ASP:BUTTON id="Button1" runat="server" Text="保存"></ASP:BUTTON>
    </FORM>
    </BODY>
    </HTML>
    .cs文件
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!this.IsPostBack)
    {
    DataTable dt = new DataTable();
    dt.Columns.Add("name");
    dt.Columns.Add("code");
    for (int i=0;i<10;i++)
    {
    DataRow row = dt.NewRow();
    row[0]="";
    row[1]="";
    dt.Rows.Add(row);
    }
    this.DataGrid1.DataSource = dt.DefaultView;
    this.DataGrid1.DataBind();
    }
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
    string strSQL ="";
    // this.DataGrid1.DataBind();
    for (int i=0;i<this.DataGrid1.Items.Count;i++)
    {
    DataGridItem item = this.DataGrid1.Items[i];
    if(item.ItemType == ListItemType.AlternatingItem || item.ItemType == ListItemType.Item)
    {

      TextBox txtCode = (TextBox)item.Cells[0].FindControl("txtCode");
    TextBox txtName = (TextBox)item.Cells[1].FindControl("txtName");
    strSQL +="Insert Into Table(code,name) values('" + txtCode.Text.Trim().Replace("'","") +"','" + txtName.Text.Trim().Replace("'","''")+"');";
    } } Response.Write(strSQL);
    }
      

  4.   

    我的mail: [email protected]
    谢谢了!!!最好是vb的!!哈!