我希望能够访问在代码隐藏中创建的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();
});
});
答案 0 :(得分: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();
});
});
答案 1 :(得分:0)
你不能做你想做的事......那样。
您正在尝试将字符串用作代码中的对象。以这个普通的C#为例:
string myString = "HelloString";
string lowerString = HelloString.ToLower(); // This won't work..
这相当于你想要做的事情。
解决方法是使用FindControl
:
$(function () {
$(".hoverlabel").hover(function () {
$("#<%= FindControl("txt1").ClientID %>").show();
});
});
这将根据您动态分配的ID找到一个控件。
答案 2 :(得分:0)
假设代码隐藏实际上呈现了一个html <label>
,你的jQuery可能是这样的:
$(function () {
$(".hoverlabel").hover(function () {
$("label.heading").show();
});
});
答案 3 :(得分: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();
});
});