2013-06-20 53 views
0

我有一个下拉列表,并在用户控件旁边显示一个链接一个用户控件弹出取决于下拉的价值链接在同一页

我有我在那里用户控件两次使用不同的引用的页面将打开引用多次标识。但我的问题是,当我单击页面上的单个链接时,由于链接位于usercontrol本身以及下拉列表中,因此我选择的下拉列表的值为$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> 
+0

那么问题是什么? –

+0

如何让这些链接正常工作? – brykneval

+0

你可以发布代码,所以我们可以得到一些想法。甚至呈现HTML更好 –

回答

0

你确定它得到了相同的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:测试是前面描述的控制。

如果我在下拉列表中选择不同的选项并单击链接,我会得到正确的选定选项(每个链接都不相同)。

这不是你遇到的那个问题吗?

+0

我做到了,但是因为它在两个用户控件上最终它在页面上的id与它执行时相同 – brykneval

+0

所以'this'总是相同的,因为它是相同的控件调用JavaScript的弹出窗口 – brykneval

+0

您的意思是当您显示<%= RadComboBox1.ClientID%>和<%= RadComboBox2.ClientID%>时,您获得相同的ID?你有没有检查过HTML源代码,你确定这发生了吗?因为这是不可能的。 – SmartDev