我希望通过输入"本次入库数量"后触发ontextchanged事件.
可是总是报错!
--------------------------
If CDec(CType(Datagrid2.FindControl("本次入库数量"), TextBox).Text.Trim()) + CDec(CType(Datagrid2.FindControl("累计入库数量"), TextBox).Text.Trim()) >= CDec(CType(Datagrid2.FindControl("计划数量"), Label).Text.Trim()) Then
            Response.Write("<script language='javascript'>alert('本行记录不保存!');</script>")
-------------------------
该怎么该呢?

解决方案 »

  1.   

    CDec(CType(Datagrid2.FindControl("本次入库数量"), TextBox).Text.Trim()) 
    这种取值方式肯定有问题
      

  2.   

    To:lemong(風之影) 请问该如何取值
      

  3.   

    To:lemong(風之影) 
    我也知道有问题,总提示还没有初始化!
    可是该如何解决呢!
      

  4.   

    sorry ,javascript 我不是很熟,只能凭经验判断是取值语句的问题。
    我一般用 c# 的服务器控件,取值语句如下:
    datagrid1.itmes[index].cells[cell_index].text下面是帮助文件中的示例代码:示例
    [Visual Basic, C#, JScript] 下面的示例展示如何使用 Items 集合来显示 DataGrid 控件中各项的内容。[Visual Basic] 
    <%@ Import Namespace="System.Data" %>
     
    <html>
    <script language="VB" runat="server">
     
        Dim Cart As DataTable
        Dim CartView As DataView
        
        Function CreateDataSource() As ICollection
            Dim dt As New DataTable()
            Dim dr As DataRow
            
            dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
            dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
            dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
            
            Dim i As Integer
            For i = 0 To 9
                dr = dt.NewRow()
                
                dr(0) = i
                dr(1) = "Item " & i.ToString()
                dr(2) = 1.23 *(i + 1)
                
                dt.Rows.Add(dr)
            Next i
            
            Dim dv As New DataView(dt)
            Return dv
        End Function 'CreateDataSource
        Sub Page_Load(sender As Object, e As EventArgs)
            
            If Not IsPostBack Then
                ' Need to load this data only once.
                ItemsGrid.DataSource = CreateDataSource()
                ItemsGrid.DataBind()
            End If
        End Sub 'Page_Load
             Sub Button_Click(sender As Object, e As EventArgs)
            
            Dim item As DataGridItem
            For Each item In  ItemsGrid.Items
                Label1.Text &= "<br>" & item.Cells(0).Text & _
                            " " & item.Cells(1).Text & _
                            " " & item.Cells(2).Text
            Next item
        End Sub 'Button_Click
     
    </script>
     
    <body>
     
       <form runat=server>      <h3>DataGrid Items Collection Example</h3>
     
          <asp:DataGrid id="ItemsGrid" runat="server"
               BorderColor="black"
               BorderWidth="1"
               CellPadding="3"
               ShowFooter="true"
               AutoGenerateColumns="true">         <HeaderStyle BackColor="#00aaaa">
             </HeaderStyle>         <FooterStyle BackColor="#00aaaa">
             </FooterStyle>
       
          </asp:DataGrid>
     
          <br>      <asp:Button id="Button1"
               Text="Display Contents of Items Collection"
               OnClick="Button_Click"
               runat="server"/>      <br>
     
          <asp:Label id="Label1" 
               runat="server"/>
     
       </form>
     
    </body>
    </html>
    [C#] 
    <%@ Import Namespace="System.Data" %>
     
    <html>
    <script language="C#" runat="server">
     
       DataTable Cart;
       DataView CartView;
     
       ICollection CreateDataSource() 
       {
          DataTable dt = new DataTable();
          DataRow dr;
     
          dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
          dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
          dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
     
          for (int i = 0; i < 10; i++) 
          {
             dr = dt.NewRow();
     
             dr[0] = i;
             dr[1] = "Item " + i.ToString();
             dr[2] = 1.23 * (i+1);
     
             dt.Rows.Add(dr);
          }
     
          DataView dv = new DataView(dt);
          return dv;
       }
     
       void Page_Load(Object sender, EventArgs e) 
       {
     
          if (!IsPostBack) 
          {
             // Need to load this data only once.
             ItemsGrid.DataSource = CreateDataSource();
             ItemsGrid.DataBind();
          }
     
       }
     
       void Button_Click(Object sender, EventArgs e) 
       {
     
          foreach (DataGridItem item in ItemsGrid.Items)
          { 
             Label1.Text += "<br>" + item.Cells[0].Text + 
                            " " + item.Cells[1].Text + 
                            " " + item.Cells[2].Text;
          }
     
       }
     
    </script>
     
    <body>
     
       <form runat=server>      <h3>DataGrid Items Collection Example</h3>
     
          <asp:DataGrid id="ItemsGrid" runat="server"
               BorderColor="black"
               BorderWidth="1"
               CellPadding="3"
               ShowFooter="true"
               AutoGenerateColumns="true">         <HeaderStyle BackColor="#00aaaa">
             </HeaderStyle>         <FooterStyle BackColor="#00aaaa">
             </FooterStyle>
       
          </asp:DataGrid>
     
          <br>      <asp:Button id="Button1"
               Text="Display Contents of Items Collection"
               OnClick="Button_Click"
               runat="server"/>      <br>
     
          <asp:Label id="Label1" 
               runat="server"/>
     
       </form>
     
    </body>
    </html>
    [JScript] 
    <%@ Import Namespace="System.Data" %>
     
    <html>
    <script language="JScript" runat="server">
     
          var Cart : DataTable;
          var CartView : DataView;
     
          function CreateDataSource() : ICollection 
          {
           
             var dt : DataTable = new DataTable();
             var dr : DataRow;
     
             dt.Columns.Add(new DataColumn("IntegerValue", Int32));
             dt.Columns.Add(new DataColumn("StringValue", System.String));
             dt.Columns.Add(new DataColumn("CurrencyValue", double));
     
             for (var i : int = 0; i < 9; i++) 
             {
                dr = dt.NewRow();
     
                dr[0] = i;
                dr[1] = "Item " + i.ToString();
                dr[2] = 1.23 * (i+1);
     
                dt.Rows.Add(dr);
             }
     
             var dv : DataView = new DataView(dt);
             return dv;
          }
      
       function Page_Load(sender, e : EventArgs) 
       {
     
          if (!IsPostBack) 
          {
             // Need to load this data only once.
             ItemsGrid.DataSource = CreateDataSource();
             ItemsGrid.DataBind();
          }
     
       }
     
       function Button_Click(sender, e : EventArgs) 
       {
     
          for (var item : DataGridItem in ItemsGrid.Items)
          { 
             Label1.Text += "<br>" + item.Cells[0].Text + 
                            " " + item.Cells[1].Text + 
                            " " + item.Cells[2].Text;
          }
     
       }
     
    </script>
     
    <body>
     
       <form runat=server>      <h3>DataGrid Items Collection Example</h3>
     
          <asp:DataGrid id="ItemsGrid" runat="server"
               BorderColor="black"
               BorderWidth="1"
               CellPadding="3"
               ShowFooter="true"
               AutoGenerateColumns="true">         <HeaderStyle BackColor="#00aaaa">
             </HeaderStyle>         <FooterStyle BackColor="#00aaaa">
             </FooterStyle>
       
          </asp:DataGrid>
     
          <br>      <asp:Button id="Button1"
               Text="Display Contents of Items Collection"
               OnClick="Button_Click"
               runat="server"/>      <br>
     
          <asp:Label id="Label1" 
               runat="server"/>
     
       </form>
     
    </body>
    </html>
    [C++] 没有可用于 C++ 的示例。若要查看 Visual Basic、C# 或 JScript 示例,请单击页左上角的语言筛选器按钮 。
      

  5.   

    dataGrid1[dataGrid1.CurrentCell.RowNumber,dataGrid1.CurrentCell.ColumnNumber]
    这是winform里面的
      

  6.   

    web里面,
    datagrid1.items[datagrid1.EditItemIndex].cells[i].text