for(int i=0;i<=this.DataGrid1.Items.Count;i++)
{
if(((CheckBox)this.DataGrid1.FindControl("CheckBox1")).Checked)
{
string id=this.DataGrid1.Items[0].Cells[0].ToString();
}}
有一个模板列,里边是CheckBox,我想选中Checkbox取出这一行的主键列的值
可是报错,说未将对象的引用设置到对象的实例。

解决方案 »

  1.   


    应该是:
    CheckBox temp=(CheckBox)this.DataGrid1.Items[0].FindControl("CheckBox1")
    if(temp.Checked)
    {}
      

  2.   

    CheckBox1必须是你模板列中那个CheckBox的ID值还有一点貌似
    for(int i=0;i<=this.DataGrid1.Items.Count;i++)
    应该是
    for(int i=0;i<this.DataGrid1.Items.Count;i++)
      

  3.   

    If me.datagrid1.items.count-1>0 Then 
    Dim i as integer 
    for i = 0 To me.datagrid1.items.count-1
    Dim chkbox As checkbox 
    chkbox= Ctype(me.datagird1.items(i).findcontrol("checkbox1"),checkbox)
    If chkbox.checked= true then 
    dim str As String 
    str= Me.datagrid1.items(i).cells(0).text.trim
    end if 
    end if 
    不好意思,我是用vb写的
      

  4.   

    If me.datagrid1.items.count-1>0 Then 
    Dim i as integer 
    for i = 0 To me.datagrid1.items.count-1
    Dim chkbox As checkbox 
    chkbox= Ctype(me.datagird1.items(i).findcontrol("checkbox1"),checkbox)
    If chkbox.checked= true then 
    dim str As String 
    str= Me.datagrid1.items(i).cells(0).text.trim
    end if 
    next
    end if 
    不好意思,我是用vb写的
      

  5.   

    对不起,刚刚忘记加了个next
    在第一个end if后面
      

  6.   

    for(int i=0;i<this.DataGrid1.Items.Count;i++)
    {
    if(((CheckBox)this.DataGrid1.Items[i].Cells[模版列序号].FindControl("CheckBox1")).Checked)
    {
    string id=this.DataGrid1.Items[0].Cells[id列序号].ToString();
    }}