2013-10-25 16 views
9

私は疑いがありますasp.netラベルテキスト要素と序文の違い

要素テキストを置くためのこれらのラベルの違いは何ですか?

<asp:Label ID="lbl2" **Text="Name"** runat="server"></asp:Label> 

と真っ直ぐにtextプロパティText="Name"内のテキストを入れて、ラベルフィールド> Name </

私は私が欲しい、私のGridViewのコントロールのいくつかのラベルを持っているの中央にテキストを配置するために

<asp:Label ID="lbl2" runat="server"**>Name</**asp:Label> 

グリッドの行を編集するときにラベルのテキスト値を取得するために、私はような検索コントロールを使用する

*protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     Label xx = GridView1.Rows[e.NewEditIndex].FindControl("lbl2") as Label; 
     Label yy = GridView1.Rows[e.NewEditIndex].FindControl("lbl2") as Label; 
     txtName.Text = xx.Text; 
     txtAge.Text = yy.Text; 
    }* 
私は今働いて、ラベルのTextプロパティに評価値を入れた場合

は、彼女は私のGridViewのコード

<asp:TemplateField HeaderText="Name"> 
         <ItemTemplate> 
          <asp:Label ID="lbl1" Text='<%# Eval("StudentName") %>' runat="server"></asp:Label> 
         </ItemTemplate> 
        </asp:TemplateField> 

ですが、私はラベル面(<asp:Label ID="lbl1" runat="server"><%# Eval("StudentName") %></asp:Label>)の中央にはevalの値を与えると検索コントロールが得られません値は、空白( "")で表示されます。どうして ?

このラベルのテキストタイプの違いは何ですか?いずれか私に助言をお願いします!

編集:

しかし、私はGridViewの外にあるラベルテキストを設定した場合、道の両方の良い作業している(その2つの方法でテキストを設定する場合は、正しい与えるlblid.text)!私はグリッドビュー内のラベルに問題があります!

答えて

5

として名をレンダリングします。このラベルのテキストタイプの違いは何ですか?

<asp:Label ID="lbl2" **Text="Name"** runat="server"></asp:Label> 

Textプロパティが値 "名前"

<asp:Label ID="lbl2" runat="server"**>Name</**asp:Label> 

String.Emptyを有するText性とLabel制御

  • を作成する必要がありますLabelコントロールを作成しますプロパティ値が

は、同時に両方の行動(Textプロパティを設定し、コンテンツを持つ)を使用すると、予期しない動作につながる可能性があることに注意してください「名前」になりますLiteral子コントロールを持つ10

  • :参照http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.label.text.aspx

    注::Textプロパティを設定すると、Labelコントロールに含まれる他のコントロール がクリアされます。

    だから私はこの問題は、あなたが書いたときにということだと思う:

    <asp:Label ID="lbl2" runat="server"**><%# Eval("StudentName") %></**asp:Label> 
    

    その後、

    Label xx = GridView1.Rows[e.NewEditIndex].FindControl("lbl2") as Label; 
    txtName.Text = xx.Text; 
    

    あなたはまだデータバインド

    されていない子Literalコントロールの値にアクセスしようとしています

    効果があるかどうかは分かりませんが、試してみてください:

    とにかく
    Label xx = GridView1.Rows[e.NewEditIndex].FindControl("lbl2") as Label; 
    xx.Controls[0].DataBind(); 
    txtName.Text = xx.Text; 
    

    、今ではあなたがより良いリテラル

  • +3

    しかし、私がgridviewの外でラベルテキストを設定すると、両方の方法がうまくいきます(lblid.textが正しい)!私はグリッドビュー内のラベルに問題があります! –

    +0

    こんにちは、私の推測は正しいですか?私の答えを見てください?それはそのバグのチャンスでしょうか? –

    +0

    @RameshRajendranをGridViewの外部で使用する場合は、<%# 'を<%='に置き換えて、ページのライフサイクルでコードが評価されるセマンティクス(およびその瞬間)を変更する必要があります。 GridViewでは、リテラルがParsedSubObjectとして追加されます(Textプロパティの動作も変更されます)。機会があれば、Labelクラスのソースコードを見てください。 – jbl

    2

    最初のラベルはスパンを示します。何の大きな違いは、それはあなたが出て、HTMLに入れ 好む何よりません:

    < span id="MainContent_lbl2" >Name</span> 
    
    < span id="MainContent_Label1" >Name</span> 
    

    あなたはまだ「」(シングルクォーテーション)を追加する必要がラベルの外に、あなたの評価を書き、それを試しをし、それがなかった場合ダブルクオートを試してみてください。 "私は、あなたの質問にいくつかの洞察力を与えることを願っています:)

    +0

    こんにちは、私の推測は正しいですか?私の答えを見てください?それはそのバグのチャンスでしょうか? –

    2

    <asp:Label ID="lbl2" **Text="Name"** runat="server"></asp:Label>

    私はわかりませんが、これは<label>としてASPラベルをレンダリングすると、テキスト部分は、このラベルのInnerTextどこ他方としてレンダリングされます1

    <asp:Label ID="lbl2" runat="server"**>Name</**asp:Label>これは<label>タブのInnerHtml

    +2

    あなたは完全に間違っています。 'はspanとしてレンダリングされます。他の答え[photowalker](http://stackoverflow.com/users/2818434/photowalker)を見てください。 – afzalulh

    +0

    こんにちは、私の推測は正しいですか?私の答えを見てください?それはそのバグのチャンスでしょうか? –

    1

    最後に、私は私の愚かな感覚で答えを見つけることが暗黙のテキストあなたのラベルのTextプロパティを使用していないだろうと考え出している必要があります。私の分離コードは、2つのクラス

    public partial class Home : System.Web.UI.Page 
    

    は手動ですべてのページのコントロールは私のホームクラスで定義されている

    だから普通のラベルが正しい与え、両方のタイプ持っているため

    (私は知らないそれが答えです)テキスト値

    しかし、私の下の行で、system.Ui.Pageクラスを使用して、新しいラベルを作成した

    Label yy = GridView1.Rows[e.NewEditIndex].FindControl("lbl2") as Label; 
    

    このfind-controlはラベルプロパティの値だけを取得します。Text="xx"はラベルのプロパティであるため、値を取得しますが、この値は任意のラベルプロパティに格納されません。

    (それは私の推測だけだ)とも私は(それは冗談です)もう一つの理由を推測

    このクライアント側<label>Text</label>制御オープンとクローズタグを持っている、しかし、サーバ側Labelコントロールには開いているタグと閉じていないタグがありません。そのため、私はラベル値を取得できません:P enter image description here

    +0

    +1のために 'これで検索コントロールはラベルのプロパティ値のみを取得しますText = "xx"はラベルのプロパティなので、この名前の値は任意のラベルプロパティに保存されていないので、取得できません。 –

    1

    asp:ラベルコントロールは、htmlラベル要素ではなく、スパンとしてレンダリングされます。サーバー側の値にアクセスする必要がある場合は、Textプロパティを使用します。 javascriptを使用してクライアント側で値を取得する必要がある場合は、id.innerHTMLを使用します。

    関連する問題