2
<script type="text/javascript">

        $(function () {            
                 $("#tb1").datepicker($.datepicker.regional["de"]).datepicker("option", {
                changeMonth: true,
                changeYear: true
            });
        });


    </script>



<asp:TemplateField HeaderText="Birth Date" SortExpression="BirthDate">
                <EditItemTemplate>
                   <input type="text" id="tb1" style="width: 150px" name="tb1" runat="server" >

                </EditItemTemplate>

在后面的代码中,我尝试在编辑模式下设置 tbCalender 的值

((HtmlInputText)GvClient.Rows[nrow].FindControl("tb1")).Value = textbox1.ToString();

问题是当我点击 tb1 文本时,javascript datepicker 没有被触发。

4

3 回答 3

2

问题是服务器端 HTML 控件在呈现时被分配了一个唯一的 ID,因此您的 JS 中的 ID 不是您呈现的 HTML 元素的 ID。

更改您的$("#tb1")选择器以使用 jQuery 'endswith' 选择器:

$("[id$='tb1']")
于 2013-10-04T19:21:27.767 回答
0

Ant P 关于服务器端控件被赋予唯一 ID 的观点几乎是正确的,但并非所有服务器控件都具有不同的 ID 和唯一 ID。

像服务器端文本框或按钮这样的简单控件通常具有相同的 ID 和唯一 ID,除非它们用于像网格视图这样的动态控件。因为网格视图绑定到数据源并且将动态生成其行,所以它不能为其子级分配特定的 ID,ID 将动态生成并且可以通过控件的 UniqueID 属性访问。

所以我建议通过调试你的输出 HTML 来找到你的控件的唯一 ID 模式(动态生成的输入),然后使用正确的正则表达式模式来获取它。

提示:唯一 ID 将包含您在源代码中指定的 ID 属性。

于 2013-10-04T21:23:22.537 回答
-1

对于获取节点的属性,你可以使用..

$("tb1").attr("name_attr");
于 2013-10-04T19:29:21.173 回答