外部javascript中用户控件的文本框ID

时间:2011-12-19 19:25:50

标签: javascript asp.net user-controls

我正在动态制作用户控件。

var controlMarkup = string.Empty;
Page page = new Page();
var customControl = page.LoadControl(control) as UserControl;
if (customControl != null)
{
    var htmlForm = new HtmlForm(); 
    var output = new StringWriter();
    //output.Write("<div id = 'ControlName'>" + customControl + "</div>");
    htmlForm.Controls.Add(customControl);
    page.Controls.Add(htmlForm);
    HttpContext.Current.Server.Execute(page, output, false);
    controlMarkup = output.ToString();
}
return controlMarkup; 

现在我想在外部javascript中获取用户控件的文本框ID,任何人都可以帮助我获取控件的ID。

4 个答案:

答案 0 :(得分:2)

试试这个$get("<%=lblDistance.ClientID%>")

答案 1 :(得分:1)

客户端ID可以在ClientID属性中找到。例如,您可以在txtDistance页面中使用jQuery隐藏名为.aspx的控件,如:

$('#<%= lblDistance.ClientID %>').hide();

答案 2 :(得分:0)

如果您使用的是.net 4.0,请将 ClientIDMode =“静态”添加到您的控件中。

类似的东西:

 yourControlname.Attributes.Add("ClientIDMode", "Static");

对于以前版本的.net,因为您使用的是外部JavaScript,所以您有两个选项

  1. 使用隐藏的输入来存储clientId的
  2. 查看您的网页制作的HTML,并在外部javascripts中使用这些ID

答案 3 :(得分:0)

我已经得到了这个问题的解决方案我只是使用javascriptserializer来获取动态控件的客户端id非常好的方法,因为RegisterCLientScript是一个从页面上的JavaScript Serializer写入字符串的方法然后你很容易得到你的期望的ID,动态控制的