Asp.net 禁用以编程方式创建的向导控件中的linkbutton
我需要你的帮助。我尝试在向导控件中禁用linkbutton失败 我不能使用javascript,我必须使用userControl 我不想要这种功能性,因为如果我在步骤4中,并且我在步骤1中单击了链接,我的数据不会持久化(每个向导步骤包含不同的UserControl)。如果您认为可以解决此问题,我不需要解决linkbutton问题 我认为我的问题是由于向导造成的,因为我尝试了以下方法: 但它仍然不起作用:( linkbutton.commandName=null似乎有效。我可以单击,但它不会更改当前向导步骤 这是我的代码:Asp.net 禁用以编程方式创建的向导控件中的linkbutton,asp.net,code-behind,wizard,sidebar,linkbutton,Asp.net,Code Behind,Wizard,Sidebar,Linkbutton,我需要你的帮助。我尝试在向导控件中禁用linkbutton失败 我不能使用javascript,我必须使用userControl 我不想要这种功能性,因为如果我在步骤4中,并且我在步骤1中单击了链接,我的数据不会持久化(每个向导步骤包含不同的UserControl)。如果您认为可以解决此问题,我不需要解决linkbutton问题 我认为我的问题是由于向导造成的,因为我尝试了以下方法: 但它仍然不起作用:( linkbutton.commandName=null似乎有效。我可以单击,但它不会更改当
public class EditOrNew : UserControl
{
Wizard w = new Wizard();
WizardStep ws1 = new WizardStep();
WizardStep ws2 = new WizardStep();
WizardStep ws3 = new WizardStep();
WizardStep ws4 = new WizardStep();
protected override void OnInit(EventArgs e)
{
w.ID = "w";
ws1.ID = "ws1";
ws2.ID = "ws2";
ws3.ID = "ws3";
ws4.ID = "ws4";
ws1.Title = "Select a client";
ws1.StepType = WizardStepType.Start;
ws2.Title = "Select a project";
ws3.Title = "Select a bot type";
ws4.Title = "Configure the new task";
ws4.StepType = WizardStepType.Finish;
}
protected override void CreateChildControls()
{
this.Controls.Add(w);
// Allow access to buttonlink in the wizard
Control ctrl = w.FindControl("SideBarContainer");
DataList dl = (DataList)ctrl.FindControl("SideBarList");
foreach (DataListItem item in dl.Items)
{
LinkButton b = (LinkButton)item.FindControl("SideBarButton");
b.CommandName = null;
// NOT WORK
//b.Attributes.Add("disabled", "disabled");
//b.ForeColor = System.Drawing.Color.Pink;
//b.Attributes.CssStyle[HtmlTextWriterStyle.Cursor] = "default";
//b.Enabled = false;
//b.OnClientClick = null;
//b.Attributes.Remove("href");
//b.Attributes.CssStyle[HtmlTextWriterStyle.Color] = "gray";
}
}
我尝试将允许访问代码放在不同的位置
我不明白为什么commandName可以,而其他的不行
提前感谢。向导步骤绑定到DataList dl中,因此您可以向dl添加处理程序:
protected override void OnInit(EventArgs e)
{
w.ID = "w";
ws1.ID = "ws1";
ws2.ID = "ws2";
ws3.ID = "ws3";
ws4.ID = "ws4";
ws1.Title = "Select a client";
ws1.StepType = WizardStepType.Start;
ws2.Title = "Select a project";
ws3.Title = "Select a bot type";
ws4.Title = "Configure the new task";
ws4.StepType = WizardStepType.Finish;
DataList dl= (DataList)w.FindControl("SideBarContainer").FindControl("SideBarList");
dl.ItemDataBound += w_ItemDataBound;
}
void w_ItemDataBound(object sender, DataListItemEventArgs e)
{
LinkButton lb = e.Item.FindControl("SideBarButton") as LinkButton;
if (lb != null)
{
lb.Enabled = false;
}
}
这将使侧边栏可见,并突出显示相应步骤的链接,而不可单击。只有按钮可用于导航