如何从javascript获取网格视图中的元素

时间:2015-01-26 17:59:24

标签: javascript jquery asp.net twitter-bootstrap gridview

我尝试在gridview内的文本框上使用日期选择器引导程序。我无法弄清楚如何访问gridview中的文本框。我收到错误:txtStartDate不存在。

    <script src="Scripts/bootstrap-datepicker.js"></script>


    <script type="text/javascript">
        $(document).ready(function () {
            var dp = $('#<%=txtStartDate.ClientID%>');
            dp.datepicker({
                changeMonth: true,
                changeYear: true,
                format: "dd.mm.yyyy",
                language: "tr"
            }).on('changeDate', function (ev) {
                $(this).blur();
                $(this).datepicker('hide');
            });
        });
</script>

这是我的文本框

  <asp:TemplateField ItemStyle-Width="150px" HeaderText="Start Date">
                        <ItemTemplate>
                            <asp:TextBox ID="txtStartDate" runat="server" Text='<%# Eval("Start_Date")%>'
                                  BackColor="LightGoldenrodYellow"></asp:TextBox>
                        </ItemTemplate>                            
                        <ItemStyle Width="150px" />
                    </asp:TemplateField>  

1 个答案:

答案 0 :(得分:0)

将CSS类应用于文本框,然后使用CSS类选择器选择具有该类的所有元素以应用datepicker。

<script src="Scripts/bootstrap-datepicker.js"></script>
<script type="text/javascript">
        $(document).ready(function () {
            var dp = $('.dp');
            dp.datepicker({
                changeMonth: true,
                changeYear: true,
                format: "dd.mm.yyyy",
                language: "tr"
            }).on('changeDate', function (ev) {
                $(this).blur();
                $(this).datepicker('hide');
            });
        });
</script>

<asp:TextBox ID="txtStartDate" runat="server" Text='<%# Eval("Start_Date")%>' BackColor="LightGoldenrodYellow" CssClass="dp"></asp:TextBox>

您获得异常的原因是因为该代码执行的范围中没有txtStartDate。每个数据行都有一个txtStartDate控件,但您无法在GridView行的上下文之外引用它们。