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; }

            });

在此日期选择器中,我想获取该行中另一个单元格的值(来自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 回答