Gridview添加空行的程序
C#程序
public partial class gdzc_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindTestData();
        }
    }    protected void BindTestData()
    {
        //模拟出一些原始数据绑定DataGrid
        DataTable dt1 = new DataTable("Table1");
        dt1.Columns.Add("ID");
        dt1.Columns.Add("产品");
        dt1.Columns.Add("数量");
        dt1.Columns.Add("日期");
        dt1.Columns.Add("状态");        dt1.Rows.Add(new object[] { 123, "产品AA", 12, "2006-11-14", "1" });
        dt1.Rows.Add(new object[] { 124, "产品BB", 21, "2006-11-13", "0" });
        dt1.AcceptChanges();        this.GridView1.DataSource = dt1;
        this.GridView1.DataBind();
    }    protected DataTable GetDataFromGrid()
    {
        DataTable dt1 = new DataTable("Table1");
        dt1.Columns.Add("ID");
        dt1.Columns.Add("产品");
        dt1.Columns.Add("数量");
        dt1.Columns.Add("日期");
        dt1.Columns.Add("状态");
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            GridViewRow gRow = GridView1.Rows[i];
            DataRow newRow = dt1.NewRow();
            newRow[0] = GridView1.DataKeys[i].Value;
            newRow[1] = ((TextBox)gRow.FindControl("TextBox1")).Text;
            newRow[2] = ((TextBox)gRow.FindControl("TextBox2")).Text;
            newRow[3] = ((TextBox)gRow.FindControl("TextBox3")).Text;
            newRow[4] = ((DropDownList)gRow.FindControl("DropDownList1")).SelectedValue;
            dt1.Rows.Add(newRow);
        }
        dt1.AcceptChanges();
        return dt1;
    }    protected void Button1_Click(object sender, EventArgs e)
    {
        DataTable dt = this.GetDataFromGrid();
        DataRow newRow = dt.NewRow();
        newRow["状态"] = "1";
        dt.Rows.Add(newRow);
        this.GridView1.DataSource = dt;
        this.GridView1.DataBind();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        DataTable dt = this.GetDataFromGrid();
        foreach (DataRow row in dt.Rows)
        {
            if (row["ID"] != null)
            {
                //更新该行记录到数据库
            }
            else
            {
                //插入该行记录到数据库
            }
        }
    }
}
我转为VB程序,但程序运行时空行不能添加!Partial Class gdzc_Default2
    Inherits System.Web.UI.Page    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            BindTestData()
        End If
    End Sub
    Sub BindTestData()
        Dim dt1 As DataTable = New DataTable("table1")
        dt1.Columns.Add("ID")
        dt1.Columns.Add("产品")
        dt1.Columns.Add("数量")
        dt1.Columns.Add("日期")
        dt1.Columns.Add("状态")        dt1.Rows.Add(New Object() {123, "产品AA", 12, "2006-11-14", "1"})
        dt1.Rows.Add(New Object() {124, "产品BB", 21, "2006-12-14", "0"})
        dt1.AcceptChanges()        GridView1.DataSource = dt1
        GridView1.DataBind()
    End Sub
    Function GetDataFromGrid() As DataTable
        Dim k As Integer = 0
        Dim dt1 As DataTable = New DataTable("Table1")
        dt1.Columns.Add("ID")
        dt1.Columns.Add("产品")
        dt1.Columns.Add("数量")
        dt1.Columns.Add("日期")
        dt1.Columns.Add("状态")
        
        While k < dt1.Rows.Count
            Dim gRow As GridViewRow
            gRow = GridView1.Rows(k)
            Dim newRow As DataRow = dt1.NewRow()
            Dim a1 As TextBox = gRow.FindControl("TextBox1")
            Dim a2 As TextBox = gRow.FindControl("TextBox2")
            Dim a3 As TextBox = gRow.FindControl("TextBox3")
            Dim a4 As DropDownList = gRow.FindControl("DropDownList1")
            newRow(0) = GridView1.DataKeys(k).Value
            newRow(1) = a1.Text
            newRow(2) = a2.Text
            newRow(3) = a3.Text
            newRow(4) = a4.SelectedValue            dt1.Rows.Add(newRow)
            k = k + 1
        End While
        dt1.AcceptChanges()
        Return dt1
    End Function    Sub Button1_Click(ByVal s As Object, ByVal e As EventArgs)
        Dim dt As DataTable = GetDataFromGrid()
        Dim newRow As DataRow = dt.NewRow()
        newRow("状态") = "1"
        dt.Rows.Add(newRow)
        GridView1.DataSource = dt
        GridView1.DataBind()
    End Sub
End Class各位老大帮帮忙,问题出在哪呢?

解决方案 »

  1.   

    用这个转换
    http://authors.aspalliance.com/aldotnet/examples/translate.aspx
      

  2.   

    算了,还是告诉你把
    .Columns.Add(New DataColumn("名称", GetType(String)))
    应该这样写
      

  3.   

    没具体看,不知道有没什么毛病.Relector吧
      

  4.   

    Function GetDataFromGrid() As DataTable
            Dim k As Integer = 0
            Dim dt1 As DataTable = New DataTable("Table1")
            dt1.Columns.Add(New DataColumn("ID", GetType(String)))
            dt1.Columns.Add(New DataColumn("产品", GetType(String)))
            dt1.Columns.Add(New DataColumn("数量", GetType(String)))
            dt1.Columns.Add(New DataColumn("日期", GetType(String)))
            dt1.Columns.Add(New DataColumn("状态", GetType(String)))
    改成上面还是不行呀!
      

  5.   

    http://authors.aspalliance.com/aldotnet/examples/translate.aspx
    这个可真不错,问题解决,谢了
      

  6.   

    http://authors.aspalliance.com/aldotnet/examples/translate.aspx