我有一个ASP页面,在查询SQL数据库之后,在HTML表格中显示数据行。返回的行数可以变化。我想添加一个函数,以便当我单击一个按钮时,我会向SQL服务器数据库发出一个查询,以更新该特定行中的列。为此,我将使用结果集中的主键。
我遇到困难的部分是获取正确的行ID。到目前为止我写的内容每次返回相同的ID,无论我点击哪一行。示例代码如下。
<table>
<tr>
<td class="bold" colspan="9"><%=vHeading%></td>
</tr>
<tr>
<td class="tablehead">Id</td>
<td class="tablehead">WhenPosted</td>
<td class="tablehead">WhenCreated</td>
<td class="tablehead">WhenUpdated</td>
<td class="tablehead">Source</td>
<td></td>
</tr>
<%
DO WHILE NOT stRs.eof
i = i + 1
%>
<tr>
<td id="pId<%=i%>" class="tablecell"><%=stRs.fields("Id")%></td>
<td class="tablecell"><%=stRs.fields("WhenPosted")%></td>
<td class="tablecell"><%=stRs.fields("WhenCreated")%></td>
<td class="tablecell"><%=stRs.fields("WhenUpdated")%></td>
<td class="tablecell"><%=stRs.fields("Source")%></td>
<td id=<%=i%>><input type="button" value="Post" onclick="post();" /></td>
</tr>
<%
stRs.MoveNext
LOOP
%>
</table>
<script text="text/javascript">
function post() {
var pId = document.getElementById("pId").innerHTML;
alert(pId);
}
</script>
所以我遍历我的结果集创建行。例如,第一行将包含ID 1.第2行将具有ID 2等。 如果我单击我的按钮以激活post方法,则无论我点击哪一行,警报每次都会显示ID 1。我猜对了,因为我最初为每行的列分配了相同的ID。我现在使用计数器变量并将其分配给ID,该ID现在为列创建唯一ID,但我不确定如何调用该函数并使用正确的ID。任何指针都非常感谢!
答案 0 :(得分:0)
你必须将我传递给函数:
<input type="button" value="Post" onclick="post(<%=i%>);" />
然后
<script text="text/javascript">
function post(i) {
var pId = document.getElementById("pId"+i).innerHTML;
alert(pId);
}
</script>