Web ページでのユーザー コントロールの複数回:
グリッドを持つユーザー コントロールがあり、リスト ボックス グリッドは auto create column = True に設定されています コントロールにクエリを渡し、Page_Load イベントでグリッドにデータを入力します ユーザーはグリッドの行をダブルクリックして選択します これらの行はリストに追加されますボックス (列 1 を値として、列 2 を表示として) ユーザーがリスト ボックスの行をダブルクリックすると、選択から削除されます Plus システムは、グリッド行がリスト ボックスに既に存在する場合、それを無視します
これまでのところ非常に良好で、完全に機能しています。
ツイスト: ページにコントロールが 1 つしかない場合 - すべて問題ありませんが、コントロールが Web ページに複数ある場合 - 期待どおりに機能していません
エラーは、同じ Java スクリプトがユーザー コントロールごとにコピーされているため、最後の 1 つだけが機能しているためです。
以下はコードです...助けてください!
<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 />