如何在gridview中的c#后面的代码中访问html输入类型文本

时间:2013-10-04 19:18:03

标签: javascript jquery asp.net

<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不会触发。

3 个答案:

答案 0 :(得分:2)

问题是服务器端HTML控件在呈现时会被赋予唯一的ID,因此JS中的ID不是呈现的HTML元素的ID。

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

$("[id$='tb1']")

答案 1 :(得分:0)

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

服务器端文本框或按钮等简单控件通常具有相同的ID和唯一ID,除非它们在动态控件(如网格视图)中使用。由于网格视图绑定到数据源并将动态生成其行,因此无法为其子项分配特定ID,ID将动态生成并可通过控件的UniqueID属性访问。

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

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

答案 2 :(得分:-1)

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

$("tb1").attr("name_attr");