[英]link on usercontrol referenced multiple times in same pages
我有一个带下拉菜单的usercontrol和usercontrol旁边的链接,该链接根据dropdown的值打开弹出窗口
我有一个页面,其中使用不同的ID两次引用了usercontrol。 但是我的问题是,当我单击页面上的单个链接时,由于该链接位于用户控件本身以及下拉列表的值上,因此我选择$find('<%=RadComboBox1.ClientID%>').get_value();
的下拉列表值$find('<%=RadComboBox1.ClientID%>').get_value();
两种情况都相同,或者从最后一个元素中查找
它因为RadComboBox1的ID与页面无关,而现在与用户控件相关,所以它将具有相同的ID,并且两个弹出链接的值都相同
如何使链接正常工作?
用户控件
<script type="text/javascript">
function openPopUp() {
var ddlValue = $find('<%=RadComboBox1.ClientID%>').get_value();
if (ddlValue.length <= 0) {
alert('Please Select a Vendor');
}
else {
var jsURL = "/Open.aspx?id=" + ddlValue;
return OpenPOPWindow(jsURL, 550, 1250, 340, 160);
}
}
</script>
<telerik:RadComboBox runat="server" ID="RadComboBox1" Height="190px" OnClientSelectedIndexChanged="javascript:openPopUp();" >
<a runat="server" id="lnkPopUp" visible="false" href="javascript:void(0);">View Data</a>
您确定它具有相同的ID吗? 因为它不应该。
你为什么不更新到
javascript:openPopUp(this);
或从代码后面添加:
RadComboBox1.OnClientSelectedIndexChanged = "openPopUp('" + RadComboBox1.ClientID + "')";
这意味着openPopUp将始终正确引用当前的组合框(第一个示例)或组合框ID(第二个示例)。
之后编辑:
我刚刚做了一些测试。
首先,我使用以下代码创建了一个用户控件:
Options here:
<asp:DropDownList runat="server" ID="ddlOptions">
<asp:ListItem Text="option 1"></asp:ListItem>
<asp:ListItem Text="option 2"></asp:ListItem>
<asp:ListItem Text="option 3"></asp:ListItem>
</asp:DropDownList>
<a href="javascript:linkit('<%=ddlOptions.ClientID%>')">Link here</a>
然后,我创建了一个页面:
<uc1:test runat="server" ID="test1" /><br />
<uc1:test runat="server" ID="test2" />
<script language="javascript" type="text/javascript">
function linkit(id)
{
alert(document.getElementById(id).value);
}
</script>
其中uc1:test是前面描述的控件。
如果我在下拉列表中选择其他选项并单击链接,则将获得正确的所选选项(每个链接都不同)。
这不是您遇到的同样的问题吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.