for(int i=0;i<dgMain.Items.Count;i++)
{
     DataGridItem dgi=dgMain.Items[i];
 HtmlButton btnSelect=(HtmlButton)dgi.FindControl("btnSelect");
 TextBox tb=(TextBox)dgi.Cells[2].Controls[1];
 resultId=dgi.Cells[1].Text ;
                 btnSelect.Attributes.Add("Onclick()","openchild()");

未将对象引用设置到对象的实例。
 btnSelect.Attributes.Add("Onclick()","openchild()");
这是什么原因请高手指教

解决方案 »

  1.   

    我用了一下string c=btnSelect.UniqueID;结果是未将对象引用设置到对象的实例。好象btnSelect根本没有被找到。
      

  2.   

    在绑定事件或itemcreate事件里
    button bu = (button)e.Item.FinderControl("controlid");
    if( bu != null )
    {
    Attributes.Add("Onclick()","openchild()");}
      

  3.   

    if( bu != null )
    {
    Attributes.Add("Onclick()","openchild()");}
    我的bu怎么总是为空??搞不明白
      

  4.   

    参考,估计是一样的问题
    http://community.csdn.net/Expert/topic/4649/4649743.xml?temp=2.148074E-02
      

  5.   

    试试HtmlButton btnSelect=(HtmlButton)dgi.cell[x].FindControl("btnSelect");
      

  6.   

    你确定你的btnSelect在datagrid中的id
      

  7.   

    为什么要用HtmlButton ,FindControl()能根据id找到HtmlButton ?
    我们一般针对的都是服务端控件。
      

  8.   

    你这个btnSelect是runat=server吗?
    如果不是就找不到的。
      

  9.   

    <asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">
        <asp:Button ID="Button1" runat="server" Text="Button" />
        <input id="Button2" type="button" value="button" />
    </asp:Panel>
    ------------------
    protected void Page_Load(object sender, EventArgs e)
    {
        Button bt = Panel1.FindControl("Button1") as Button;
        if(bt != null)
            bt.Text = "server_btn";
        HtmlButton bt1 = Panel1.FindControl("Button2") as HtmlButton;
        if(bt1 != null)
            bt1.InnerText = "html_btn";
    }
    ==============
    测试后,我们可以知道FindControl()只能针对服务端控件。
      

  10.   

    原来是ruant=server没加,但是什么时候该添加请高手指点
      

  11.   

    是以为它循环的第0行是头,上面没有HtmlButton 所以出现错误.
    参考,情况类似
    http://community.csdn.net/Expert/topic/4649/4649743.xml?temp=2.148074E-02
      

  12.   

    不是ruant=server加没加的问题,如果你动态添加控件,怎么办?你应该理解HtmlButton和Button这两个类的差别;还有服务端控件和客户端控件的差别。网上很多介绍,建议你搜搜看