2012-01-16 3 views
-5

나는 ASP.NET 페이지가 있습니다. 다음과 같은 라벨이 있습니다 :어떻게 ASP.NET Label을 전송할 수 있습니까?

<label id="CalistigiFirmaUnvanLabel" runat="server" style="width: 100%; float: left; font-size: 10pt; font-weight: bold; font-family: Calibri"> 
Çalıştığı Kurumun Unvanı</label> 

각 15 페이지에 10 개가 있습니다. 조건에서 이러한 레이블의 innerTexts를 변경하려고합니다. 그러므로 페이지로드 또는 초기화에서 다음과 같이 쓰고 싶습니다.

foreach (Control ctrl in mainDiv.Controls) 
{ 
    if (ctrl.GetType().BaseType.Equals(CalistigiFirmaUnvanLabel.GetType()) 
    { 
     //if this labels innerText is in my Dictionary, then change it like (Label).InnerText = sth; 
    } 
} 

그러나 "레이블"변환은 작동하지 않습니다. calistigifirmaVergiNoLabel 유형을 보면 System.Web.UI.HtmlControls.HtmlGenericControl이라고 표시됩니다. if 내부에 ctrl에 대한 Label을 캐스팅 할 때 "InnerText"속성이 없습니다. 어떻게 캐스팅 할 수 있습니까? 또한이 코드는 div도 가져옵니다. 레이블 만 있으면 돼. BaseType을 삭제했지만 if 문을 입력하지 않았습니다.

+1

이는 '

+0

으로 선언하면 html 레이블로이를 수행 할 수 없습니까? – Ada

+0

예,'if (ctrl is HtmlGenericControl)'을 사용하고 그 타입으로 캐스팅 한 다음 'InnerText'를 확인하십시오. – ThePower

답변

5

당신은 (너무 그 문제에 HtmlGenericControl를 C# 또는 div의에서 HTML을 라벨에 액세스 할 수 있습니다, 또는 (HtmlGenericControl ("상표")) 및 유형은 각각에 캐스팅 : 또한

, 그들에게 당신이 할 수있는 . 당신이의 FindControl 및 유형 캐스트없이 액세스 할 경우의 FindControl()를 호출 한 후 유형, 당신은 같은 'ASP'태그 접두사가 필요합니다 :

<asp:Label 

을 당신은에 RUNAT = "서버"를 포함해야 제어 속성은 코드 배후에서 직접 액세스 할 수 있습니다. (그래서 fo R 당신 인텔리에서)

+0

HTMLLabel을 찾을 수 없습니다. 지금 당장 HtmlGenericControl을 시도하고 있습니다. div를 사용하는 것은 중요하지 않지만 쓸모없는 조회를 만들기 위해 사전을 사용하지 않으려 고합니다. – Ada

+0

죄송합니다. 라벨이 이상하다고 생각하는 것을 잊어 버렸습니다. HtmlGenericControl myLabel = new HtmlGenericControl ("상표"); – OnResolve

+0

죄송합니다. 여기에 잘못된 라벨을 붙였습니다. 실제 서버에는 runat = "server"가 있습니다. – Ada

1

라벨 = <asp:Label id="x" runat="server" />

<label> HtmlGenericControl으로 번역 얻는다; 그러나이 태그를 사용하여 기본 태그가 무엇인지 파악하고 레이블 태그를 확인한 다음 acccordingly 처리 할 수 ​​있어야합니다. 또는 서버 측 코드가 예상대로 작동하도록 서버 측 해당 기능을 사용하십시오.

if (ctrl is Label) 
{ 
    string text = ((Label)ctrl).Text; 
} 
2

는이 같은 HtmlGenericlControl으로 runat="server" 속성을 사용하여 다음 runat="server" 속성이 적용되면

<label id="CalistigiFirmaUnvanLabel" runat="server" style="width: 100%; float: left; font-size: 10pt; font-weight: bold; font-family: Calibri">Çalıştığı Kurumun Unvanı</label> 

, 당신은 다음과 같은 코드에서 레이블에 액세스 할 수 있습니다

string labelText = CalistigiFirmaUnvanLabel.InnerText; 

그러나이 대답은 페이지의 10 개 레이블 각각에 다른 ID가 있다고 가정합니다.

관련 문제