Eu tenho o seguinte trecho no VB.Net (aplicativo da web):
Dim lnkTemp as HyperLink = dvFileInfo.FindControl("lnkPlan")
dfFileInfo é um controle DetailsView de System.Web.UI.WebControls
Quando eu tento converter isso para C # assim:
HyperLink lnkTemp = dvFileInfo.FindControl("lnkPlan");
Eu recebo um erro após o "=" que afirma:
Não é possível converter implicitamente o tipo "System.Web.UI.Control" para System.Web.UI.WebControls.HyperLink ". Existe uma conversão explícita (você está sem um elenco?)
O que preciso fazer para corrigir este problema?
Obrigado!
Respostas:
4 para resposta № 1Apenas lance:
HyperLink lnkTemp = (HyperLink)dvFileInfo.FindControl("lnkPlan");
Ou seja um pouco mais seguro:
HyperLink lnkTemp = dvFileInfo.FindControl("lnkPlan") as HyperLink;
// check for lnkTemp == null
O escritor do código VB provavelmente deveria estar fazendo o seguinte para clareza:
Dim lnkTemp As HyperLink = DirectCast(dvFileInfo.FindControl("lnkPlan"), HyperLink)
4 para resposta № 2
Você só precisa adicionar um elenco explícito:
HyperLink lnkTemp = (HyperLink)dvFileInfo.FindControl("lnkPlan");