提问人:Austin Gerschler 提问时间:8/31/2017 更新时间:9/1/2017 访问量:115
访问页面中用户控件的特定实例的属性
Accessing the attributes of a specific instance of a user control within a page
问:
我正在尝试找到一种方法来区分同一页面上的用户控件 (.ascx) 实例。这些用户控件在页面中都有自己的关联控件,它们需要与之交互。
对于这个特定的“提供程序查找”工具,我需要能够调整页面上文本框的值,这些文本框并非都具有相同的 ID。
希望下面能说明我的意思。
我的.aspx页的 HTML,其中我包含用户控件的三个不同实例:
<uc4:providerlookup ID="ProviderLookupReferring" runat="server" allowunassigned="true" associatedtextbox="ReferringProviderNameTextBox"/>
<uc4:providerlookup ID="ProviderLookupPrimary" runat="server" allowunassigned="false" associatedtextbox="PrimaryProviderNameTextBox"/>
<uc4:providerlookup ID="ProviderLookupSecondary" runat="server" allowunassigned="false" associatedtextbox="SecondaryProviderNameTextBox"/>
用户控件 (providerlookup.ascx) 中的 Javascript 示例:
unassignedProviderSelection()
{
if (document.getElementById("DetailContentPlaceHolder_ReferringProviderNameTextBox") != null)
{
document.getElementById("ReferringProviderNameTextBox").value = "Blah blah blah";
}
}
用户控件 (providerlookup.ascx) 中的 HTML:
<asp:Button ID="ButtonUnassignedProvider" runat="server" text="Unassigned"
onclientclick="unassignedProviderSelection(); return false;"
CausesValidation="False" Width="117px" UseSubmitBehavior="false" />
因此,我在这里所做的是在该用户控件中提供一个名为“ButtonUnassignedProvider”的按钮,我想使用它来修改包含用户控件的.aspx页中文本框的内容。
问题是我不知道文本框的 id:我想以一种通用的方式执行此操作,允许您在.aspx页中声明实例时设置用户控件的自定义属性。
我没有编写原始用户控件:它不会去任何地方,我需要尝试使用这个新功能来增强它。不过,我尝试这样做的方式可能不是最好的方法......
感谢您提供的任何帮助。
答:
0赞
VDWWD
8/31/2017
#1
您必须使用在控制树上导航,然后获得正确的 .在 UserControl 所在的 aspx 页上,它如下所示。FindControl
ClientID
document.getElementById("<%= ProviderLookupReferring.FindControl("ButtonUnassignedProvider").ClientID %>")
0赞
Austin Gerschler
9/1/2017
#2
今天早上,我有机会与一位更有经验的 Web 开发人员交谈,他建议在服务器端构建我的 Javascript,然后在 Unassigned 按钮中添加一个 onclientclick 事件。这似乎有效,所以我认为这就是我要做的。
评论