我有一个存储过程,它将返回一个包含n列的结果集(存储过程的逻辑确定要返回的列),我用它来构建一个“网格”。为此,我使用我在运行时枚举的DataTable来动态构建DataColumns:
<table>
<thead>
<% foreach (System.Data.DataColumn column in ((System.Data.DataTable)Model).Columns)
{ %>
<th>
<%: column.Caption %>
<input id="Image1" type="image" src="../Content/theme/images/arrowhead-down.jpg" width="9px" height="5px"/></th>
</th>
<%}%>
</thead>
<tbody>
<%
foreach (System.Data.DataRow row in ((System.Data.DataTable)Model).Rows)
{%>
<tr>
<% foreach (var column in row.ItemArray)
{ %>
<td>
<%: column.ToString() %>
</td>
<%}%>
</tr>
<%
}
%>
</tbody>
</table>
每个新列元素都将包含类型图像(按钮)的输入。基本上,该按钮将允许使用某些脚本隐藏列:
$(document).ready(function () {
$('#Image1').click(function () {
$('td:nth-child(3),th:nth-child(3)').hide();
});
});
所以我的问题是这样,我怎么能让每个新创建的按钮调用相同的功能而不管按钮的名称(因为我不知道将创建多少个按钮或它们的名字)?
答案 0 :(得分:2)
给他们所有相同的CSS类名。在使用.NET时,避免将JavaScript连接到ID,它喜欢自己占用它们。
然后你可以使用:
$('.buttonClassOfYourChoice').click(function() {
....common click code...
})
“this”将引用被点击的按钮:
$('.buttonClassOfYourChoice').click(function() {
alert($(this).html())
})