Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查找动态创建的控件的客户端ID?_C#_Asp.net_Clientid - Fatal编程技术网

C# 查找动态创建的控件的客户端ID?

C# 查找动态创建的控件的客户端ID?,c#,asp.net,clientid,C#,Asp.net,Clientid,如何找到动态创建的控件的客户端ID 在我的ascx中,我有以下代码片段 function DoSomething() { var loneStar= $find("<%= loneStar.ClientID %>"); loneStar.hide(); } 问题是呈现页面中的ClientID显示为空 我错过了什么? Html输出: <span>Labelll</span> <script type="te

如何找到动态创建的控件的客户端ID

在我的ascx中,我有以下代码片段

  function DoSomething() {
        var loneStar= $find("<%= loneStar.ClientID %>");
        loneStar.hide();
    }
问题是呈现页面中的ClientID显示为空

我错过了什么?

Html输出:

<span>Labelll</span>


<script type="text/javascript">
    var txtUsernameID = 'ctl02';   
标签 变量txtUsernameID='ctl02';
您需要给控件一个ID,否则不会生成ID属性。对您的c#进行如下更改:

protected Label loneStar = new Label { ID = "loneStar", Text = "Raspeberry", ForeColor = System.Drawing.Color.DarkGray};

我并不是故意刁难你,但是你读过这个问题了吗?OP显然已经有了那个片段。好吧,但我只是尝试了OP所做的,我可以得到动态添加的Label的clientID。您可能已经为元素显式设置了ID,而OP没有。@adt:请看我对Ender答案的评论-将动态生成
clientID
,但它不会作为
ID
属性存在于DOM元素中,因此
$find()
将不起作用。公平地说,我再次检查了html,是的,它在服务器端生成了和ID,但span没有ID属性。+1 Ender。虽然
将呈现控件生成的
ID
,但实际呈现的
将不会有
ID
属性,除非明确指定了一个属性。是的,实际上Town是正确的。生成的clientID只是指定的ID,而不是我所期望的,比如ctl_xxx。有没有办法做到这一点?看看NamingContainer:。命名容器继承权是创建您引用的ID的基础。但是,如果您正在动态创建控件,.NET将由您来确保它们是唯一的。希望有帮助。
    <asp:Panel runat="server" ID="pnl"></asp:Panel>
    <script type="text/javascript">
        var txtUsernameID = '<%= myLabel.ClientID %>';
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        AddedControl();
    }

    protected Label myLabel = new Label();
    void AddedControl()
    {
        myLabel.Text = "Labelll";
        this.pnl.Controls.Add(myLabel);
    }
}
<span>Labelll</span>


<script type="text/javascript">
    var txtUsernameID = 'ctl02';   
protected Label loneStar = new Label { ID = "loneStar", Text = "Raspeberry", ForeColor = System.Drawing.Color.DarkGray};