你添加的必须说明成protected,不能是private
因为ASPX实际上是.vb中类的子类,所以必须让子类能够访问

解决方案 »

  1.   

    是的,我添加的说明是protected的
    aspx:
    <asp:TemplateColumn HeaderText="是否提交">
    <ItemTemplate>
    <asp:Label runat="server" ID="Label1" CssClass="class1" Text='<%# DataBinder.Eval(Container, "DataItem.is_submit") %>'>
    </asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox runat="server" ID="is_submited" CssClass="class1" Text='<%# DataBinder.Eval(Container, "DataItem.is_submit") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    aspx.vb:
    Protected WithEvents is_submited As System.Web.UI.WebControls.Label
    Protected WithEvents Label1 As System.Web.UI.WebControls.Label不过就是说我没有实例,实在看不出哪里不对劲,活见鬼了真是。
      

  2.   

    明白了,这里面的东西是循环产生的,所以ID会被换掉(因为不能保证唯一),你可以在客户端打开HTML,看看ID被换成了什么,一般是在前面加上父容器的ID
      

  3.   

    这位大哥,真是不好意思,父容器的是datagrid,可是父容器的属性里找不到属于label的id,还有这个页面就是因为不能加载到实例,所以不能显示,还有什么办法没有?谢谢了!
      

  4.   

    你把代码中使用这个ID的地方删掉
    要使用添加的控件,你必须在父容器的Controls属性中获取
      

  5.   

    你说对了,他的id显示是循环的,id="DataGrid1__ctl2_Label1",id="DataGrid1__ctl3_Label1",、、、、那不是没法判断了?
      

  6.   

    例如你的DataGrid叫DataGrid1
    DataGrid1.Items[0].Controls[0]应该是第0行的Label控件
    DataGrid1.Items[0].Controls[0]应该是第0行的TextBox控件
    你可以用编码的方式在运行期获取某一行的Label和TextBox的实例
      

  7.   

    其实,我的本意只是这样:在数据显示以后我再多加了一列超级链接列,不过是这样,我要根据datagrid前面其中一列的值来判断这列加上去的超级链接列是不是有效,比如,datagrid一行数据里面,其中一字段是0,则这列超级链接列无效,如果是1,则超级链接有效。
    然后我现在是把要判断的这列和超级链接列都做成了模板列。到aspx.vb里面去设置超级链接列的enabled的属性。