1

画像ボタンを含むグリッドビューがあります。その画像ボタンをクリックすると、いくつかのテキストボックスを含む別のグリッドが塗りつぶされます。テキストボックスに挿入された値がグリッドビューの列値の1より大きい場合、フォーカスを失ったテキストボックスのJQuery検証を開始したいと思います。その列の値は、バインドされたフィールドを使用してデータをバインドしています。

Jqueryを使用してこれを達成するにはどうすればよいですか? 私はJQueryが初めてです。

私はこのようなことを試しました。

<script type="text/javascript" language="javascript">
    $(function () {

        var GridView = $('#grdSalesOrder tr').each(function () {
            var btn = $(this).find('img[id*=imgdesign1]');
            alert(btn);
        });

    });
</script>

最初に、そのグリッド ビューのメイン グリッドビューとイメージボタンを見つけています。ボタンをクリックすると、別のグリッドビューがいっぱいになります。したがって、この画像ボタンのクリック イベントで別のグリッドを検索するコードを記述する必要があると思います。これは、ページ ロード イベント時に別のグリッドが使用できないためです。しかし、このコードでは、メイン グリッド ビューにあるボタンを取得していません。間違いがある場合は、Jquery を編集してください。

4

2 に答える 2

1

ニーズに合わせて構成できる JQuery を次に示します。

次のように、グリッド ビューに CssClass を追加したと仮定します。

<asp:GridView ID="Products" runat="server" CssClass="grid_view">

次のようなテキスト ボックスへの CssClass:

<asp:TextBox ID="txtUserInput runat="server" CssClass="user_input" />

バインドされている列の値がヘッダー行にあること。

したがって、グリッド ビューからの html テーブル出力が次のような場合

<table class="grid_view" cellspacing="0" rules="all" border="1" id="Products" style="border-collapse:collapse;">
<tr>
    <th scope="col">12</th><th scope="col">4</th><th scope="col">21</th>
</tr>
<tr>
    <td>3</td><td>1</td><td>5</td>
</tr>
<tr>
    <td>3</td><td>1</td><td>5</td>
</tr>
<tr>
    <td>3</td><td>1</td><td>6</td>
</tr>
<tr>
    <td>3</td><td>1</td><td>5</td>
</tr>
<tr>
    <td><input type="text" class="user_input" /></td>
    <td><input type="text" class="user_input" /></td>
    <td><input type="text" class="user_input" /></td>
<tr>
</table>

このJQueryを使用できます

<script type="text/javascript">
    $('.user_input').blur(function() {
    var enteredVal = $(this).val();
    var currentCell = $(this).closest("td");

    col = $(currentCell).prevAll().length;
    var obj = $(this).parents('table').find('th').eq(col);
    var hrVal = obj.text();

    // your validation here
    if (parseInt(enteredVal,10) > parseInt(hrVal,10)) {
        alert('too big');
    }
});​
</script>

<br>実際の例については、このフィドルを参照してください。

于 2012-06-08T09:27:36.083 に答える
0

ここでの秘訣は、グリッド上で必要な各要素を見つける方法です。HTMLコードがなくても、最初にいくつかのヒットを与えることができます.

このコードは、id YourGridViewID を持つ GridView 内のすべてのテキスト ボックスを選択します。

jQuery('#<%=YourGridViewID.ClientID%> input[type=text]')

設定した失われたフォーカスを追加するには

jQuery('#<%=YourGridViewID.ClientID%> input[type=text]').blur{
    // add the code for the validation
});

グリッドから 1 行 2 行を書き込めば、他のデータを見つけるのにもっと役立つかもしれません。

于 2012-06-08T08:14:56.920 に答える