CType((TextBox)e.Item.Cells(1).Controls(0),TextBox).Text

解决方案 »

  1.   

    Dim strID As String = MyDataGrid.DataKeys(e.Item.ItemIndex)
    -------------------
    Dim strID As integer = MyDataGrid.DataKeys(e.Item.ItemIndex)
      

  2.   

    Dim strID As String = MyDataGrid.DataKeys(e.Item.ItemIndex)
    -------------------
    Dim strID As integer = MyDataGrid.DataKeys(e.Item.ItemIndex)
    ###################这句没错误
      

  3.   

    Dim strName As String = CType(e.Item.Cells(1).Controls(0),TextBox).Text
    你的这个语法是没问题,看一下你的索引对吗?或e.Item.Cells(1)表示第一列,Controls(0),表示第一列中的第一个控件
      

  4.   

    WZCNet(没有做不到,只有想不到) 你的索引指的是什么啊? Dim strID As String = MyDataGrid.DataKeys(e.Item.ItemIndex)我的这句在断点调试时,
    已经获得此条记录的主键值。
      

  5.   

    e.Item.Cells(1)是表示第二列吧,我是要改此列的值啊,另外Controls(0)表示什么意思呢?我不明白,(我是照着书抄的)
      

  6.   

    另外Controls(0)表示什么意思呢?我不明白,(我是照着书抄的)
    Controls(0)表示第几个控件,只有一个的话,就用这个就行了
      

  7.   

    Controls(0),表示第一列中的第一个控件
    -------------------------到底这里的控件指的是什么呀??
      

  8.   

    我的做法是把主键那一列也放到DATAGRID中去,如:
    <Columns>
    <asp:BoundColumn Visible="False" DataField="ID" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
    其他列
    </Columns>
    这样就可以在代码中调用e.item.cells(0).text得到主键!
    不妨试试!
      

  9.   

    e.Item.Cells(1).Text    我这样取其他列  得到的是空值啊
      

  10.   

    你要把需要取值的列放到第一位,
    <Columns>
    这下面一行是cells(0).text的位置 <asp:BoundColumn Visible="False" DataField="ID" ReadOnly="True" HeaderText="ID"></asp:BoundColumn>
    这是cells(1).text的位置 <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="用户管理" CancelText="取消" EditText="编辑">
    <HeaderStyle Width="20%"></HeaderStyle>
    </asp:EditCommandColumn>
    <asp:BoundColumn DataField="scal" HeaderText="二级类别名称">
    <HeaderStyle Width="25%"></HeaderStyle>
    </asp:BoundColumn>
      

  11.   

    to: allan126(风)
    CType((TextBox)e.Item.Cells(1).Controls(0),TextBox).Text
    和你说说吧
    cell代表列的意思:cell(0)代表第一列,cell(1)代表第二列,cell(3)代表第三列
    Controls(i)代表第(i+1)个控件
    你要用FindControl才行的
    CType(((TextBox)e.Item[i].Cell[j].FindControl("文本控件名"),TextBox)).Text
    i,j 分别为行
      

  12.   

    CType((TextBox)e.Item[i].Cell[j].FindControl("文本控件名"),TextBox)).Text出错啊,语法错误