0

リストビュー コントロールがクリックされたときにその行の値を取得しようとしていて、それをテキスト ボックスに表示したいと考えています。http://www.ezzylearning.com/tutorial.aspx?tid=7597714で、この種のシナリオを示す記事を見つけました。javascript を使用してリストビュー コントロールの行の値を取得し、それをテキスト ボックスに設定して、その記事に記載されている JavaScript コードの形式を使用して表示しようとしました。行をクリックするたびに、エラー ウィンドウがポップアップ表示され、Microsoft JScript ランタイム エラー: オブジェクトが期待されますと表示される JavaScript コードのランタイム エラーを修正する必要があります。参考までに、以下に私のコードを示します。よろしくお願いします。

<script type ="text/javascript" >

    var row;
    var id,name,addr,age,natn,occ;

    function GetRow(rowval)
    {
        row = $(rowval).parent().parent(); // the runtime error hightlights on this line

        id = $("#id", row).text();
        name = $("#name", row).text();
        addr = $("#addr", row).text();
        age = $("#age", row).text();
        natn = $("#natn",row ).text();
        occ = $("#occ",row).text();

        row.addClass("highlightRow");

        $("#TextBox1").val(id);
        $("#TextBox2").val(name);
        $("#TextBox3").val(addr);
        $("#TextBox4").val(age);
        $("#TextBox5").val(natn);
        $("#TextBox6").val(occ);
    }

</script>

ItemTemplate のリストビュー コントロールのソース コード:

<ItemTemplate>

    <tr style="background-color:#E0FFFF; color: #333333;" >
        <td>
            <asp:Label ID="IDLabel" runat="server" Text='<%# Eval("ID") %>' style="cursor: pointer;" onclick = "return GetRow();" />
        </td>

        <td>
            <asp:Label ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' />
        </td>

        <td>
            <asp:Label ID="AddressLabel" runat="server" Text='<%# Eval("Address") %>' />
        </td>

        <td>
            <asp:Label ID="AgeLabel" runat="server" Text='<%# Eval("Age") %>' />
        </td>

        <td>
            <asp:Label ID="NationalityLabel" runat="server" Text='<%# Eval("Nationality") %>' />
        </td>

        <td>
            <asp:Label ID="OccupationLabel" runat="server" Text='<%# Eval("Occupation") %>' />
        </td>
    </tr>

</ItemTemplate>
4

1 に答える 1

0

これを試してください:

ラベルIDLabelに CssClass を指定します。myLabelこの例で言いましょう。次に、クリック イベントに次のコードを追加します (必要なくなりますGetRow)。

$(".myLabel").click(function(){
    row = $(this).parent().parent();
    // all your other stuff from GetRow()
});

jquery コードで #TextBox1 を参照していることに気付きました。TextBox1 が asp.net コントロールの場合、レンダリングされる要素 ID が TextBox1 ではないため、その要素の選択には機能しないことに注意してください。

于 2013-04-10T18:35:18.397 に答える