Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更改可见面板?_C#_Asp.net - Fatal编程技术网

C# 如何更改可见面板?

C# 如何更改可见面板?,c#,asp.net,C#,Asp.net,我想创建一个带有链接按钮的选项卡面板,我的代码是: // create title panel for (int i = 0; i < 5; i++) { Ctrl.Controls.Add(new LiteralControl(string.Concat("<li role=\"presentation\" class=\"rightcolomn\">"))); LinkButton lb = new LinkButton(); lb.ID = i.

我想创建一个带有链接按钮的选项卡面板,我的代码是:

// create title panel 
for (int i = 0; i < 5; i++)
{
    Ctrl.Controls.Add(new LiteralControl(string.Concat("<li role=\"presentation\" class=\"rightcolomn\">")));
    LinkButton lb = new LinkButton();
    lb.ID = i.ToString();
    lb.Text =i.ToString();
    lb.Click += new EventHandler(this.lbnTitle_Click); 
    Ctrl.Controls.Add(lb);
    Ctrl.Controls.Add(new LiteralControl("</li>"));
}

// this code we create panels
for (int i = 0; i < 5; i++)
{
    Panel pn = new Panel();
    pn.ID = "p" + i.ToString();
    for (int j = 0; j < 3; j++)
    {
        //some code add to panel                    
    }
    pn.Visible = false;
    Ctrl.Controls.Add(pn);
}

// code for link button click is:
protected void lbnTitle_Click(object sender, EventArgs e)
{
    LinkButton ClickedLink = (LinkButton)sender;            
}
//创建标题面板
对于(int i=0;i<5;i++)
{
添加(新的LiteralControl(string.Concat(“
  • ”)); LinkButton lb=新的LinkButton(); lb.ID=i.ToString(); lb.Text=i.ToString(); lb.Click+=新事件处理程序(this.lbnTitle\u Click); Ctrl.Controls.Add(磅); Ctrl.Controls.Add(新的LiteralControl(“
  • ”); } //这段代码是我们创建的面板 对于(int i=0;i<5;i++) { 面板pn=新面板(); pn.ID=“p”+i.ToString(); 对于(int j=0;j<3;j++) { //一些代码添加到面板中 } pn.可见=假; Ctrl.Controls.Add(pn); } //链接按钮点击代码为: 受保护的无效lbnTitle\U单击(对象发送方,事件参数e) { LinkButton ClickedLink=(LinkButton)发送者; }
    当我单击链接按钮时,我希望相应的面板设置为可见,如下所示:
    panel(“p”+linkbutton.ID)。visible=true

    如何访问面板并执行此操作


    Ctrl
    是一个
    asp:PlaceHolder

    不要只使用带有数字的控件ID,它们不太可能是唯一的,也不是很有意义。但是,在
    NamingContainer
    上使用
    FindControl

    string placeHolderId = "...";
    string panelId = "p" + linkbutton.ID; 
    
    (this.Form.FindControl("placeHolderId").FindControl("panelId") as Panel).Visible=true;
    
    protected void lbnTitle_Click(object sender, EventArgs e)
    {
        LinkButton ClickedLink = (LinkButton) sender;
        Control container = ClickedLink.NamingContainer;
        Panel panel = (Panel) container.FindControl("p" + ClickedLink.ID);
        panel.Visible = true;
    }