gpt4 book ai didi

javascript - 无法通过外部页面上的 javascript 访问用户控件

转载 作者:行者123 更新时间:2023-11-30 06:01:31 24 4
gpt4 key购买 nike

我用 label 开发了我的用户控件和一个 textbox (它们都来自 DevExpress )。我有一个包含一些控件的页面,包括我的和 javascript block 。我意识到我必须使用 document.getElementById("<%=tbPosition.ClientID %>")获得用户控制的访问权限。但是document.getElementById("<%=tbPosition.ClientID %>")返回空值。

这是我的代码:1) Page.aspx与用户控制

<script type="text/javascript" language="javascript">
var tb = document.getElementById("<%=tbPosition.ClientID %>"); // returns null
</script>

<head></head>
<body>
<rsoft:TextBoxControl ID="tbPosition" runat="server"
Title="Позиция" IsRequired="true"
ValidationMode="UnsignedInt" ClientIDMode="Static" />
</body>

2) 用户控件 'rsoft:TextBoxControl'

<table>
<tr>
<td class="styleFieldLabel">
<asp:Label ID="lblTitle" Text="" runat="server" Font-Bold="True" />
&nbsp;
</td>
<td class="styleFieldInput">
<dx:ASPxTextBox ID="tbValue" runat="server" Width="500px"
ClientIDMode="Static" ClientInstanceName="tbValue">
<ClientSideEvents TextChanged="tbValue_TextChanged" />
<ValidationSettings SetFocusOnError="True" Display="Dynamic" RequiredField-ErrorText="Поле обязательно для заполнения"
ErrorTextPosition="Bottom" ValidateOnLeave="false" />
</dx:ASPxTextBox>
</td>
</tr>

有谁知道为什么document.getElementById("<%=tbPosition.TextBoxClientID %>")变成 document.getElementById("tbPosition_tbValue") ,但是有一个 html 元素“tbPosition_tbValue_I”而不是“tbPosition_tbValue”?当我在用户控件中使用 DevExpress 控件时会发生这种情况。当我的控件不包含 devexpress 但通常是 <Asp:Textbox>我没有这个问题。

最佳答案

当 ASP.NET 加载 UserControl 时,它只呈现 UserControl 的内容。

因此在您的情况下,它只会呈现 <table> 、行、单元格以及它们的内容。它会变成 document.getElementById("<%=tbPosition.ClientID %>")进入document.getElementById("tbPosition")它应该做的,因为这是你告诉它在运行时做的,但是tbPosition当呈现为 html 时什么都没有。

您的选择是:在 UserControl 中编写 javascript 以访问这些控件,或者将您的服务器控件设置为 ClientIDMode="Static"这将确保您可以将正确的控件 ID 放入您的 JavaScript。

var tb = document.getElementById('tbValue');

关于javascript - 无法通过外部页面上的 javascript 访问用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com