2012-01-16 30 views
-5

私はASP.NETページを持っています。どのようにASP.NETラベルをキャストできますか?

<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

として宣言してください。 – Ada

+0

Yeh、 'if(ctrl is HtmlGenericControl)'を使用し、それをその型にキャストし、 'InnerText'をチェックします。 – ThePower

答えて

5

をあなたはHtmlGenericControl、または(HtmlGenericControl(「ラベル」))とタイプは、それぞれにキャスト(あまりにもそのことについてはC#やdivタグからHTMLラベルにアクセスすることができます。あなたがにFindControlと型キャストせずにアクセスしたい場合にFindControl()を呼び出した後のタイプは、次のような「ASP」タグの接頭辞持っている必要があります。

<asp:Label 

を、あなたは中にrunat =「server」を含める必要がコードの背後に直接アクセスできるようにするための制御属性R君インテリセンスで)

+0

HTMLLabelが見つかりませんでした。今、私はHtmlGenericControlを試しています。それはdivを取ることは問題ではありませんが、私はちょうど辞書が役に立たない検索をしないように辞書をしたくないです – Ada

+0

私はごめんなさい、ラベルが奇妙だったことを忘れていました、あなたが探しているものは次のとおりです:HtmlGenericControl myLabel = new HtmlGenericControl ("ラベル"); – OnResolve

+0

申し訳ありませんが、ここに間違ったラベルを貼り付けています。実際のものはrunat = "server"です。 – Ada

1

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

<label> HtmlGenericControlとして翻訳されます。しかし、これを使って基になるタグが何であるか把握し、ラベルタグをチェックし、acccordingly処理することができます。または、サーバー側のコードが期待通りに機能するように、サーバー側の同等の機能を使用します。

また、彼らはあなたが行うことができます:

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

あなたはこのようHtmlGenericlControlrunat="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> 

runat="server"プロパティが適用された場合、あなたは、このようなコードで、ラベルにアクセスすることができます。

string labelText = CalistigiFirmaUnvanLabel.InnerText; 

ただし、この回答は、ページ上の10個のラベルのそれぞれが異なるIDを持つと仮定しています。

関連する問題