2013-06-20 54 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