1

これを行うJavascriptコードがあります:

var oObjchbox = document.getElementById("CheckBox_" + countyId);

countyId は、事前に作成されたイメージ マップから取得されます。

一方、チェックボックスは ASP.NET によって作成されます。私の最初の試みは、asp:checkBox で asp.repeater を使用することでしたが、ASP.NET は独自の ID の作成を要求するため、うまくいきませんでした。もう 1 つの試みは、runat=server を使用せずに HTML INPUT を使用することでしたが、チェックボックスはラウンドトリップに耐えられませんでした。

誰でもこの問題の解決策を持っていますか? ここで同様の問題を見つけました http://www.velocityreviews.com/forums/t301617-hijack-databoundliteralcontrol.html しかし、誰も彼の質問に答えませんでした。

4

3 に答える 3

2

問題が Repeater 内の Checkbox から ID を取得している場合は、この記事が役立つ場合があります。 Select All Checkboxes in a GridView . ASP.Net Gridview でクライアント側のすべての選択機能を生成する方法を示します。

あなたが扱っている問題は珍しいものではありません。JavaScript を使用して、レイアウトを繰り返すコントロール (GridView、Repeater、DataList など) 内にあるコントロールにアクセスしたい。

覚えておくべきことは、クライアント側で使用できるDataBound イベント ( RowDataBoundItemDataBound ) 中に生成された ClientId にアクセスできることです。

これは標準的なコントロールであるため、帰りの旅行で見つけることができるはずです。ただし、リピーターを使用している場合、コントロール自体が読み取り専用タイプの表示用に設計されているため、データの更新にはもう少し作業が必要になる場合があります。

問題が各コントロールを定義済みの StateCode にマッピングしている場合は、ItemDataBound または RowDataBound (Repeater から何か他のものに変更した場合) イベントで、必要に応じて 1 つまたは 2 つのパラメーターを使用して JavaScript メソッドへの呼び出しを配線できます。currentCheckBoxId と適切な StateCode を個別に、または既に連結して、ルックアップ タイプの機能として使用します。

2 つの回答で申し訳ありませんが、あなたが実際に何をしようとしているのかについて、質問が少し漠然としているように思えました。これらのアイデアのいずれかが役立つことを願っています。

于 2009-04-26T12:28:15.347 に答える
1

サーバー上で選択されたチェックボックスを検出することが目標である場合は、非表示フィールドを作成し、クリックごとに国 ID を連結して usa;ca;nl などの区切りリストを作成することにより、クライアント側を更新してみませんか? ポストバックでその値を読み取り、解析すると、選択された国が得られます。

PageLoad で次を発行します。 RegisterHiddenField("txtCountryCodes","");

于 2009-04-26T11:42:28.750 に答える
1

この問題を解決するために jquery を使用できます。たとえば、カスタム クエリによって要素を選択する機能が提供されます。

$("[id*=CheckBox1") - id の末尾が CheckBox1 であるすべての要素を返します。

$("[id^=CheckBox1") - ID の開始が CheckBox1 であるすべての要素を返します。

単語や他の多くのセレクターを含むことで見つけることができます。

詳細については、jquery.com をご覧ください =)

于 2009-04-26T11:10:52.833 に答える