用戶控制多時報:用戶控制網頁上多次,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 />
歡迎來到SO。嘗試使用Firebug或開發工具,看看瀏覽器的控制檯是否有錯誤。 –
託尼,感謝您的迴應,沒有錯誤,但這樣的JavaScript是爲每個用戶控件的實例創建,導致重複函數,函數「OnGetRowValue」引用「selList」檢查重複項,現在只有最後一個用戶控制正在使用!我需要的是一個泛型函數,可以通過任何用戶控件來調用,我們傳遞控件,並且像當前的OnGetRowValue函數一樣。 – user1813775