0

各行にアイコンが付いたasp.netグリッドビューがあり、クリックすると、編集可能なテキストボックス/入力フィールドを含むポップアップを作成したいと考えています。これらのテキストボックスと入力フィールドには、行アイコンからの既存のテキストが含まれます。クリックしただけです。

私はこのようにできると思っていましたが、クラスからテキストを取得しますが、id からではなく、コードの一番下の行を参照してください。

$(".imgEditFields").click(function () {
        var row = $(this).closest("tr");
        var strServiceID = $(".clHiddenServiceID", row).text();
        var strTitleOfDoc = $(document).attr('title');
        var strSessionUser = strTitleOfDoc.replace("Order Tracking for ", "");
        var strPSTNNumber = $(".clHiddenPSTNNum", row).text();
        var strPSTNNum = strPSTNNumber.replace(/'/g, "");
        $('#popupTrackerEditFields h1:first').text("Edit Record " + strPSTNNum);
        var strSuppOrdNo = $("#lblSupplierOrderNum", row).text();

以下は、皆さんからのコメント/返信のいくつかのパーマテーションを試した私のコメントです

        $(".imgEditFields").click(function () {
        //I get the row with the icon that was clicked on
        var row = $(this).closest("tr");
        var strServiceID = $(".clHiddenServiceID", row).text();
        var strTitleOfDoc = $(document).attr('title');
        var strSessionUser = strTitleOfDoc.replace("Order Tracking for ", "");
        var strPSTNNumber = $(".clHiddenPSTNNum", row).text();
        var strPSTNNum = strPSTNNumber.replace(/'/g, "");
        $('#PopUpTrackerEditFields h1:first').text("Edit Record " + strPSTNNum);
        var strSuppOrdNo = $(".clSupplierOrderNumber", row).text();
        //All the above work great and i get what is expected, the problem begins blow when trying to select by //the id (in that row)

        //The below line achieves what i want visually but i cannot gaurantee its the correct row can i?
        $('#MainContent_tbPopUpEditSuppOrdNo').val(strSuppOrdNo);
        //The below line does not work as suggested by the replies and i have tried with HTML, val, Text etc
        $('#<%=tbPopUpEditSuppOrdNo.ClientID%>', row).html(strSuppOrdNo);
        //the blow works again not sure if it is selecting the correct row each time
        $('#MainContent_tbPopUpEditSuppOrdNo').attr('title', 'Edit your Supplier no here for ' + strPSTNNum);
4

2 に答える 2

2

これは、要素 ID が .NET によって生成されるためです。コントロールの ID を使用することをお勧めしますが、コントロールが GridView にあり、予測できないため、これは厄介なことになります。

前に行ったように、テキスト ボックスで (CssClass を使用して) クラスを使用し、行に対してそれを選択することをお勧めします。

于 2013-05-16T15:16:21.983 に答える
-1

これらは ASP.NET コントロールであるため、ID のレンダリングは異なります。次の構文を使用してそれらをターゲットにできます。

$("#<%= idOfControlHere.ClientID%>")

ID の 1 つについて、以下に例を示します。

$("#<%= lblSupplierOrderNu.ClientID %>", row).text();
于 2013-05-16T15:14:59.397 に答える