我的datalist控件中有linkbotton,panel
id分别为linkbotton1,panel1,panel1的visible=fasle
linkbotton的commandname=view
在datalist控件中有事件Itemcommand
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName == "viewclass")
        {
            panel panel1=(panel)datalist1.FindControl("panel1");
            panel1.visible=true;
        }
但是并不能编译成功,说要用new来定义panel1。。
怎么得到datalist控件中的子控件? 
再线等呀。。

解决方案 »

  1.   

    commandname=viewclass
    上面写错了。
      

  2.   

    楼主是用小写的吗?'p'anel 。
    得到子控件可以用e.Item.FindControl("ControlID");得到
    if (e.CommandName == "viewclass")
            {
                Panel panel1=(Panel )e.Item.FindControl("panel1");
                panel1.Visible=true;
            }
      

  3.   

    panel panel1=(panel)e.Item.FindControl("panel1");
    panel1.visible=true;private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
    String command = ((Button)e.CommandSource).CommandName;
    Button btnNew;
    Panel pnlNew;
    switch(command) 
    {
    case "New" :
    btnNew  = (Button)e.Item.FindControl("btnNew");
    pnlNew = (Panel)e.Item.FindControl("pnlNew");
    btnNew.Visible = false;
    pnlNew.Visible = true;
    break;
    case "UnSave" :
    btnNew = (Button)e.Item.FindControl("btnNew");
    pnlNew = (Panel)e.Item.FindControl("pnlNew");
    btnNew.Visible = true;
    pnlNew.Visible = false;
    DataList1.EditItemIndex = -1;
    BindData();
    break;
    }
    }
      

  4.   

    panel panel1=(panel)datalist1.FindControl("panel1");
    修改为:
    Panel panel1=(Panel)datalist1.Items[e.Item.ItemIndex].FindControl("panel1");