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;
}