【问题标题】:textbox id of user control in external java script外部javascript中用户控件的文本框ID
【发布时间】:2011-12-19 19:25:49
【问题描述】:

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

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。

【问题讨论】:

    标签: javascript asp.net user-controls


    【解决方案1】:

    试试这个$get("&lt;%=lblDistance.ClientID%&gt;")

    【讨论】:

    • “外部”是什么意思?你不能在 .js 文件中使用它!
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果您使用的是 .net 4.0,请将 ClientIDMode="Static" 添加到您的控件中。

      类似:

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

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

      1. 使用隐藏输入来存储 clientId 的
      2. 查看您的页面生成的 HTML 并在您的外部 javascript 中使用这些 ID

      【讨论】:

        【解决方案4】:

        我已经得到了这个问题的解决方案,我只是使用 javascriptserializer 来获取动态控件的客户端 ID,这是一种非常好的方法,因为 RegisterCLientScript 是一种将 JavaScript Serializer 中的字符串写入页面的方法,然后你可以轻松地得到你的所需的动态控件 ID

        【讨论】:

          猜你喜欢
          • 2011-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-20
          • 1970-01-01
          • 1970-01-01
          • 2010-12-27
          • 1970-01-01
          相关资源
          最近更新 更多