1

コードビハインドで作成された jQuery のラベル コントロールにアクセスできるようにしたいと考えています。

コードビハインドで自分のページにコントロールを追加しました

        Label L = new Label();
        L.ID = "txt" + i;
        L.Text = dr["category_name"].ToString();
        L.CssClass = "heading";
        divCat.Controls.Add(L); 

ID または jQuery の代替オプションを介してこれらのコントロールを見つけることは可能ですか? 以下は、そのようなコントロールがないことを示すエラーを示します。

$(function () {
  $(".hoverlabel").hover(function () {
    $("#<%=txt1.ClientID %>").show();
  });

});
4

4 に答える 4

3

うまくいくかどうかはわかりません。
あなたは例えばの恩恵を受けることができますClientIDMode="Static"

<asp:TextBox ID="txtEcho2" runat="server" ClientIDMode="Static" /> 

あなたの場合

    Label L = new Label();
    L.ID = "txt" + i;
    L.Text = dr["category_name"].ToString();
    L.CssClass = "heading";
    divCat.Controls.Add(L); 
    L.ClientIDMode= ClientIDMode.Static;

そしてあなたのjquery関数

    $(function () {
        $(".hoverlabel").hover(function () {
        $("#txt1").show();
       });
    });
于 2013-02-17T04:12:47.737 に答える
0

あなたがやろうとしていることをすることはできません..そのように。

コード内のオブジェクトとして文字列を使用しようとしています。この通常のC#を例にとってみましょう。

string myString = "HelloString";
string lowerString = HelloString.ToLower(); // This won't work..

それはあなたがやろうとしていることと同じです。

回避策は次を使用していFindControlます:

$(function () {
    $(".hoverlabel").hover(function () {
        $("#<%= FindControl("txt1").ClientID %>").show();
    });
});

これにより、動的に割り当てたIDに基づいてコントロールが検索されます。

于 2013-02-17T04:12:16.827 に答える
0

コードビハインドが実際にhtml<label>をレンダリングすると仮定すると、jQueryは次のようになります。

$(function () {
  $(".hoverlabel").hover(function () {
    $("label.heading").show();
  });
});
于 2013-02-17T04:15:00.383 に答える
0

追加の「識別 CSS クラス」を割り当てるだけです。

var L = new Label();
L.ID = "txt" + i;
L.Text = dr["category_name"].ToString();
L.CssClass = "heading myLabel"; // Set multiple classes separated by spaces
divCat.Controls.Add(L); 

次に、次の jQuery ステートメントを使用してコントロールを取得できます。

$(function () {
  $(".hoverlabel").hover(function () {
    $(".myLabel").show();
  });
});
于 2013-02-17T04:57:46.893 に答える