[ad_1]
使ってみます
jquery.sumoselect.js
asp.netページのComboBoxでDropDownListを取得します。 その上に載せました
<script src="Scripts/jquery-3.6.0.js"></script> <script src="Scripts/jquery.sumoselect.js"></script> <link href="Content/sumoselect.css" rel="stylesheet" /> <script type="text/javascript"> $(document).ready(function () { $(<%=ddlMINERAL_ADD.ClientID%>).SumoSelect({ okCancelInMulti: true }); }); </script>
ページには、テーブル、asp.UpdatePanel、asp.repeater、および要素があります
<asp:listbox ID="ddlMINERAL_ADD" runat="server" selectionmode="Multiple">
リピーターの奥深くにあります。
エラーが発生します
引用:コンパイラ エラー CS0103 – このコンテキストには変数が存在しません
.ddlMINERAL_ADD をリピーターから移動すると、すべて問題ありません。
私が試したこと:
したがって、document.ready イベントで JavaScript コードを使用して、いくつかの ddlMINERAL_ADD を「アクティブ化」する必要があります。
解決策 1
1 行のコード (次に示す) と何が起こるかを分割する必要があります。
$(<%=ddlMINERAL_ADD.ClientID%>)
<% と %> の間の Razor エンジンはサーバー側で実行されます。
$() — jQuery 部分 — はクライアント側で実行されます。
では、実際には ddlMINERAL_ADD.ClientID の値はどこにあるのでしょうか? それはクライアント (jquery/javascript 側) にありますか、それともその変数はサーバー側 (C# コードのどこかに) に存在しますか?
クライアント コードに存在する場合、Razor レンダリング エンジンが値を取得できないのはそのためです (クライアント コードが実行される前にサーバー側で実行されます)。
サーバー側にあるユーザー名を持っていましたが、値を取得するにはクライアント側の JavaScript が必要でした。 このStackOverflowでそれを行う方法を書きました: https://stackoverflow.com/questions/4599169/using-razor-within-javascript/22175868#22175868[^]
[ad_2]
コメント