使用jQuery在嵌套GridView中向TextBox添加值
我有一个嵌套Gridview有a link
用于显示和隐藏嵌套gridview中的div标签。
默认情况下,当我们单击a link
以显示(启用)此Div
标签下的Div Tag
时,此Div Tag
被禁用,它们是一个TextBox
和一个Button
。
当用户单击a link
将同时启用div,我想在此文本框中添加@username
例如
----------- ----------- ShowDiv
我正在使用的JQuery
function showDiv() { $("#divShow").show(); $("#TextBox1").text('@username'); return false; }
上面的jquery代码用于启用Div标签,但没有将@username
添加到TextBox1
我对ASP知之甚少,但如果这样在网页中呈现类似于的文本框,那么你想使用$(“#TextBox1”)。val(’@ username’)而不是.text()
解决方案非常类似于我之前提出的问题 。 您可以在对showDiv
的调用中传递对锚标记的引用(使用this
关键字)并设置div的类名(例如innerDiv
):
ShowDiv
showDiv
可以找到表格单元格容器,然后是具有innerDiv
类名称和文本框的元素。
function showDiv(lnk) { var $div = $(lnk).closest('td').find('.innerDiv'); $div.show(); $div.find('input[type=text]').val('@username'); }
请注意,我在jQuery选择器中使用类名和元素类型。 元素的ID不可靠,因为GridView的每一行都显示这些控件,这些控件都应具有不同的ID。
您的代码有两个问题。
首先,ASP.NET为服务器控件生成复杂的ID(类似于blabla_gridparent_gridchild_textbox1_blabla
,而不是简单的textbox1
),因此如果您想在客户端使用控件,则必须通过您的ClientID
属性向ASP.NET请求该ID。服务器控制:
function showDiv() { $("#divShow").show(); $("#<%= TextBox1.ClientID %>").val('@username'); return false; }
注意,这是一个服务器代码。 我假设这个JS代码放在.aspx
页面(或.ascx
控件)中,而不是静态.js
文件中。 如果是静态.js
文件,则需要将该ID作为参数传递。
其次,您必须使用.val()
jquery方法来处理input
值。 TextBox
呈现为input
。