<asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound"
                            Width="828px">
                            <ItemTemplate>
                                <br />
                                <asp:Label ID="lblBig" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"productsort") %>'></asp:Label>
                                <asp:CheckBox ID="CheckBox1" runat="server" /><br />
                                &nbsp;
                                <asp:GridView ID="GridView1" runat="server" DataKeyNames="id" OnRowDataBound="GridView1_RowDataBound"
                                    Width="805px">
                                    <Columns>
                                        <asp:TemplateField>
                                            <ItemTemplate>
                                                <asp:CheckBox ID="CheckBox2" runat="server" />
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                    </Columns>
                                </asp:GridView>
                            </ItemTemplate>
                        </asp:DataList>
datalist 里面有个GRIDVIEW  
GRIDVIEW 里面有个CHECKBOX2  
datalist 里面的GRIDVIEW  找到了
哪个高人指点怎么找到这里面的CHECKBOX2

解决方案 »

  1.   

    例如GridView加个选择的LinkButton,按这个选择CheckBox就打勾,CheckBox在第4列:
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridView myGridView = (GridView)sender;
            ((CheckBox)myGridView.SelectedRow.Cells[4].FindControl("CheckBox1")).Checked = true;
        }
      

  2.   

    DataList找GridView  GridView找CheckBox
      

  3.   

    “GRIDVIEW 里面有个CHECKBOX2”?不对吧,从你的代码逻辑上明明是有不止一个CheckBox2,就算是你运行一次程序时恰好每一个GridView中只有一个CheckBox2,读你这个程序并且写出功能代码的人也不能写出想当然的只有一个CheckBox2的代码来。
      

  4.   

    只要我们看出有稍微复杂的层次结构,就不应该搞什么“FindControl”的飞机,而是选择写出耦合性比较低的代码,每一个内层的CheckBox它会自己通知我们它自己被改变了选择,我们的程序要做的只是把它的通知的信息(绑定的所有属性和数据)收集起来然后给另外一个主要方法使用,而不是这个主要方法去查询ChexkBox控件(也就是说,这个主要方法根本不跟CheckBox的设计耦合,即使我们吧CheckBox修改别的控件也不修改这个主要方法一行代码,而仅仅是修改通知信息的那个只有4、5行的简单事件程序)。
      

  5.   

    实际上,除非不得已,应该尽量少使用FindControl方法。那样你就可以写出越来越好的UI处理架构。