C#转VB(序)这次给分!(还是比较菜的问题)
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()
{
//模拟出一些原始数据绑—ataGrid
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
各位老大帮帮忙,问题出在哪呢?
[解决办法]
用这个转换
http://authors.aspalliance.com/aldotnet/examples/translate.aspx