用FindControls具体方法查看下vs.net中的帮助吧!!论坛中也有很多例子!

解决方案 »

  1.   

    ((TextBox)  datagrid1.Item[i].Cell[j].FindControl("xxx")).Text
     ((dropdownlist)datagrid1.Item[i].Cell[j].FindControl("xxx")).SelectedItem.Text((CheckBox)  datagrid1.Item[i].Cell[j].FindControl("xxx")).Selected
      

  2.   

    Private Sub cmdCompare_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles cmdCompare.Click
                
                Dim myDataGridItem As DataGridItem
                Dim chkSelected As System.Web.UI.WebControls.CheckBox
                Dim lblClassCode As System.Web.UI.WebControls.Label
                Dim ClassCode As String = ""
                Dim bWrongSelection As Boolean = False            Dim CompareIds As String = ""            For Each myDataGridItem In grdParts.Items
                    chkSelected = myDataGridItem.FindControl("chkSelection")
                    lblClassCode = myDataGridItem.FindControl("SearchClassCode")
                    If chkSelected.Checked Then
                        CompareIds &= CType(myDataGridItem.FindControl("SearchId"), Label).Text & ","
                        If ClassCode = "" Then
                            ClassCode = lblClassCode.Text
                        Else
                            If ClassCode <> lblClassCode.Text Then bWrongSelection = True
                        End If
                    End If
                Next
    end sub
      

  3.   

    这样做不如隐藏DataGrid的Header和footer,然后自己直接拖控件好了
      

  4.   

    页面中.aspx 这样写
    <Columns>
    <asp:TemplateColumn HeaderText="删除">
    <ItemTemplate>
    <asp:CheckBox ID="Delete" Runat="server"></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    //dg_log 为DataGrid 用for 循环  Delete为DataGrid 中的checkBoxfor(int i=0;i<this.dg_log.Items.Count;i++)
    {
    if(((CheckBox)this.dg_log.Items[i].FindControl("Delete")).Checked == true)
    {
    //这里添加处理程序
    SqlStr = "delete log where auto_id="+this.dg_log.Items[i].Cells[1].Text;
    DbConn.Execute(SqlStr);
    }
      

  5.   

    我又试了一下,还是不行啊,
    我是在footer里添加了一个textbox和一个buton,叶面显示的时候是不显示footer 的,点击一个button ,显示footer,我在footer里的textbox输入一些内容,然后点击旁边的button(也在footer里的那个),要把textbox里得值返回出来。但是没法得到textbox的实例,在ItemCommand事件里也无法捕捉footer里那个button的click事件:(然后我是在datagrid的外面放了一个button,想测试一下能否得到footer里那个textbox里的内容:foreach (DataGridItem dgi in dg.Items)
    {
    TextBox txtTest=(TextBox)dgi.Cells[0].FindControl("t2");
    TextBox1.Text=txtTest.Text;

    }
    结果还是有错,在TextBox1.Text=txtTest.Text;这行错误提示:
    Object reference not set to an instance of an object. 怎么解决??
      

  6.   

    TextBox1.Text=txtTest.Text;
    忘了说一下,TextBox1是我在叶面上另外添加的,想来显示得到的内容。
      

  7.   

    关于 
    datagrid中 模板的 事件 捕捉要用commandname (模板中加的控件的属性)
     
    点击  模板中加的控件 模板中加的控件会 把事件传到 datagrid的 itemcommand 里(在这里面捕捉)具体体用法请看
    framework sdk  的 快速入门 中 datagrid的事例  写的很明白