前台的HTML如下:<%@ Page Language="vb" AutoEventWireup="True" Codebehind="ProjectView.aspx.vb" Inherits="Project.ProjectView"%>
<html>
    <body>
        <form runat="server" ID="Form1">
            <h3>TemplateColumn Example</h3>
            <asp:DataGrid id="ProjectGrid" runat="server" BorderColor="black" CellPadding="2" OnEditCommand="ProjectGrid_EditCommand"
                OnCancelCommand="ProjectGrid_CancelCommand" OnUpdateCommand="ProjectGrid_UpdateCommand" ShowFooter="True"
                AutoGenerateColumns="false">
                <Columns>
                    <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false" HeaderText="Edit Controls" />
                    <asp:BoundColumn HeaderText="名称" ReadOnly="true" DataField="name" />
                    <asp:TemplateColumn>
                        <HeaderTemplate>
                            <b>PM</b>
                        </HeaderTemplate>
                        <ItemTemplate>
                            <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "PM") %>'runat="server" ID="Label1"/>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:Textbox Text='<%# DataBinder.Eval(Container.DataItem, "PM") %>' runat="server" ID="txtbox" />
                        </EditItemTemplate>
                        <FooterTemplate>
                            <asp:HyperLink id="HyperLink1" Text="Microsoft" NavigateUrl="http://www.microsoft.com" runat="server" />
                        </FooterTemplate>
                    </asp:TemplateColumn>
                    <asp:BoundColumn HeaderText="SQA" DataField="sqa" />
                </Columns>
            </asp:DataGrid>
        </form>
    </body>
</html>处理更新命令函数如下:
    Protected Sub ProjectGrid_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles ProjectGrid.UpdateCommand
        Dim sqaTB As TextBox = e.Item.Cells(3).Controls(0)
        Dim pmTB As TextBox = e.Item.Cells(2).Controls(1)
        Response.Write(sqaTB.Text & pmTB.Text)        Dim sqa As String = sqaTB.Text
        Dim dr As DataRow
        dr = ds.Tables(0).Rows.Find(ProjectGrid.DataKeys(e.Item.ItemIndex))
        If Not dr Is Nothing Then
            dr(2) = pmTB.Text
            dr(3) = sqaTB.Text
            Dim custCB As Odbc.OdbcCommandBuilder = New Odbc.OdbcCommandBuilder(da)
            da.Update(ds, "projectInfo")
        End If        ProjectGrid.EditItemIndex = -1
        ProjectGrid.DataSource = ds.Tables(0).DefaultView
        ProjectGrid.DataBind()
    End Sub在点编辑按钮后页面正确显示,修改可编辑行的值后点update按钮,得到的结果为什么仍然是原来的值,而不是新输入的值呢?
例如:
未编辑前页面显示1和2,点编辑按钮后,我将编辑框中的1和2分别改成3和4,然后点更新应该可以得到3和4,但是实际我用上面的代码仍然得到的是1和2(上面的response.write 输出的值仍然是12)请大家指点迷冿