我的aspx页面上有一个formview,其中包含使用表格排列的各种控件。 根据编辑模式中的角色,我需要启用或禁用DDL“cboClients”。
这里的问题是我无法使用FindControl()方法获得该控件。
我尝试过以下代码 -
DropDownList ddl = null;
if (FormView1.Row != null)
{
ddl = (DropDownList)FormView1.Row.FindControl("cboClients");
ddl.Enabled=false;
}
即使我已经使用了相同控件的DataBound事件 -
protected void cboClients_DataBound(object sender, EventArgs e)
{
if (FormView1.CurrentMode == FormViewMode.Edit)
{
if ((Session["RoleName"].ToString().Equals("Clients")) || (Session["RoleName"].ToString().Equals("Suppliers")))
{
DropDownList ddl = (DropDownList)sender;
ddl.Enabled = false;
}
}
}
但是这个数据绑定事件只发生一次,但是当formview模式改变时不会发生。
有人能为我提供适当的解决方案吗?
感谢您分享您的时间。
答案 0 :(得分:2)
尝试ModeChanged事件。 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.formview.modechanged.aspx
更新..
试试这个
DropDownList ddl = FormView1.FindControl("cboClients") as DropDownList;
if (ddl != null) {
ddl.Enabled=false;
}