javascript - 如何从用户控件更新控件的 ID

标签 javascript asp.net user-controls

我有一个 aspx 页面,它有一个 div 控件 id="mainblock"

我创建了一个用户控件,它根据登录页面动态检索一个值。

我必须将此值作为 id 传递给 div id="mainblock",以便将其 id 更改为该值。

我正在尝试很多事情,但根本无法工作。

首先我尝试在用户控件中编写一个服务器端代码来像这样更新

 protected void Page_Load(object sender, EventArgs e)
    {
     divid = dynamicid();

        var control = this.Page.FindControl("mainblock");
        if (control != null)
        {
            control.ID = divid.ToString();                
        }
       }

这什么都不做,它不会改变父页面中 DIV 的 ID。

我尝试使用 javascript,以便从用户控件的控件中复制 innertext 并像这样更新当前页面控件 id

 <script type="text/javascript">
    document.getElementById('mainblock').id = document.getElementById('<%=   usercontrolidvalue.ClientID %>').innerText;
    </script>

这给了我这个错误.. 在包含内容控件的内容页面中只允许直接使用内容控件。

有没有一种方法可以从 usecontrol 更新控件的当前 id

请帮忙

最佳答案

您不能从代码隐藏中更改 ID 的值。但是,您可以从 aspx 代码设置客户端 ID。

你有一组有限的 id 值吗?然后你可以在 aspx 中这样做:

<div runat="server" clientidmode="Static" id="div1">one</div>
<div runat="server" clientidmode="Static" id="div2">two</div>
<div runat="server" clientidmode="Static" id="div3">three</div>
<div runat="server" clientidmode="Static" id="div4">four</div>

然后从您的代码隐藏中根据需要设置可见性:

//Condition...
div1.Visible = false; //will not render
div2.Visible = false; //will not render  
div3.Visible = false; //will not render
div4.Visible = true; //the only one shown

这将在您的输出 HTML 中只留下 div 4。

关于javascript - 如何从用户控件更新控件的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20290386/

相关文章:

javascript - 调用 onClick 方法之前的 ASP 警报文本

jquery - MVC Razor DatePicker 和 TimePicker

javascript - Shortcode Dropdown WordPress - 仅限文本编辑器

javascript - 如果未选中复选框则禁用链接

c# - 部署预编译的 ASP.net 网站项目

asp.net - ASP.NET MVC 5 中的自定义文件夹结构

基于Java的用户认证

asp.net - 如何计算我在页面中拥有的用户控件的数量?

javascript - jquery 自动完成输入键

javascript - 如何从客户端 View 中定位语法错误的错误