0

GridViewのTemplateField内に画像があります

<asp:TemplateField HeaderText="Start Date" SortExpression="start_dt">
                <EditItemTemplate>
                    <asp:Label ID="StDt" runat="server" CssClass="StartDate" Text='<%# Eval("start_dt", "{0:d}") %>'></asp:Label>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="StDt" runat="server" Text='<%# Bind("start_dt", "{0:d}") %>'></asp:Label>
                    <asp:ImageButton ID="startdtimage" CssClass="StartDateImg" runat="server" ImageUrl="../images/pencil.gif" Visible='<%# HasUpdateStartDateRole() %>' Width="18px" Height="18px" onclientclick="javascript:return false;"/>
                </ItemTemplate>
                <ItemStyle Wrap="False" />
            </asp:TemplateField>

 <asp:BoundField DataField="hire_dt" DataFormatString="{0:d}" 
                HeaderText="Hire Date" ReadOnly="True" />
        </Columns>

画像に日付ピッカーを付けています。

$(".StartDateImg").datepicker({
                duration: '',
                showTime: false,
                constrainInput: false,
                onSelect: function (dateText) {
                    alert($(this).parents().find(".hire_dt").html()); 
                    $(this).parents().find("span")[0].innerHTML = dateText; }

            });

このdatepicker内で、この行の別のセルの値を(hire_dt列から)取得したいと思います。

編集$(this).parents().closest('tr').find('td:last').html()行の最後の列なので、 使用して取得できまし ただし、将来テーブルがすべて変更される場合に備えて、「hire_dt」IDを使用することをお勧めします。

4

1 に答える 1

2

jqueryでマークアップをトラバースします。おそらくStartDateImgは画像です。その場合、その親はTDである可能性が高く、その親はTRである可能性があります。

兄弟TD(または少なくともセットクラスを持つ同じTRの子)への最も簡単なパスは次のとおりです。 $(this).closest('tr').find('.hire_dt')

于 2012-11-08T21:09:44.580 に答える