2012-11-10 46 views
1

用戶控制多時報:用戶控制網頁上多次,JavaScript的不是網頁上的工作

我有一個網格的用戶控件和一個列表框 格設置爲自動創建列=真 我將查詢傳遞給控件並在Page_Load事件中填充網格 用戶雙擊網格上的行以選擇 添加這些行以列出框(列1爲值,列2爲分隔) 如果用戶雙擊列表框中的行 - 將其從選擇中刪除 Plus系統會忽略網格行(如果它已經存在於列表框中)

到目前爲止這麼好,它是完美的工作!

扭曲: 如果有酮基的頁面上的一個控制 - 所有這些都是好的 但是,如果控制是在網頁上多次 - 這是不理想的

錯誤的工作是「怎麼同樣的Java腳本得到複製爲每個用戶控制,所以只有最後一個工作

下面是代碼...幫助!

<script type="text/javascript"> 

    function list_DblClick(s, e) { 
     s.RemoveItem(s.GetSelectedIndex()) 
    } 


    function grid_DblClick(s, e) { 
     var sfn = s.GetColumn(0).fieldName + ';' + s.GetColumn(1).fieldName 
     s.GetRowValues(s.GetFocusedRowIndex(), sfn, OnGetRowValues); 
    } 

    //check for duplicate and add new 
    function OnGetRowValues(values) { 
     var sFound = "False" 
     for (var i = 0; i < selList.GetItemCount(); i++) { 
      if (values[0] == selList.GetItem(i).value) { 
       sFound = "True" 
      } 
     }; 
     if (sFound == "False") { 
      selList.AddItem(values[1], values[0]) 
     }; 
    } 
</script> 


<br /> 
<br /> 
    <dx:ASPxGridView ID="grdSelection" ClientInstanceName="grid" runat="server" Width="100%"> 
     <ClientSideEvents RowDblClick="grid_DblClick" /> 
     <SettingsBehavior AllowFocusedRow="True" /> 
    </dx:ASPxGridView> 
<br /> 
<br /> 
    <dx:ASPxListBox ID="listSelected" ClientInstanceName="selList" runat="server" Height="250px" Width="100%" > 
    <ClientSideEvents ItemDoubleClick="list_DblClick" /> 
    </dx:ASPxListBox> 
<br /> 
<br /> 
+0

歡迎來到SO。嘗試使用Firebug或開發工具,看看瀏覽器的控制檯是否有錯誤。 –

+0

託尼,感謝您的迴應,沒有錯誤,但這樣的JavaScript是爲每個用戶控件的實例創建,導致重複函數,函數「OnGetRowValue」引用「selList」檢查重複項,現在只有最後一個用戶控制正在使用!我需要的是一個泛型函數,可以通過任何用戶控件來調用,我們傳遞控件,並且像當前的OnGetRowValue函數一樣。 – user1813775

回答

相關問題