1
테이블을 사용하여 배열 된 다양한 컨트롤이 포함 된 aspx 페이지에 formview가 있습니다. 편집 모드에서 역할에 따라 활성화 또는 비활성화해야하는 DDL "cboClients"가 있습니다.FormView의 EditItemTemplate에서 드롭 다운 목록에 액세스하는 방법
여기에서 문제는 FindControl() 메서드를 사용하여 해당 컨트롤을 가져올 수 없다는 것입니다.
나는 다음 코드를 시도 -
DropDownList ddl = null;
if (FormView1.Row != null)
{
ddl = (DropDownList)FormView1.Row.FindControl("cboClients");
ddl.Enabled=false;
}
나는 같은 컨트롤의 데이터 바인딩 이벤트 사용 AVE에도 -
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 모드 일 때이 데이터 바인딩 이벤트는 한 번만 발생하지만 변경되었습니다.
누구나 적절한 해결책을 제공 할 수 있습니까?
시간을 공유해 주셔서 감사합니다.
감사 주권을 시도,하지만 난 또한을 사용했다. – IrfanRaza
감사합니다 Raj, 저를 위해 일한. 하지만 캐스팅과 "as"연산자를 사용하는 것의 차이점은 무엇인지 알 수 있습니까? – IrfanRaza
as 연산자는 예외를 발생시키는 대신 변환 실패시 null을 산출한다는 점을 제외하면 캐스트와 같습니다. http://msdn.microsoft.com/en-us/library/cscsdfbt(vs.71).aspx –