1

我有一个包含 2 个按钮、一个文本框和标签的列的 asp.net 列表视图。

单击按钮时,将执行 javascript 函数。

此函数获取文本框中的值,然后在标签中开始倒计时。

问题是,无论我选择哪一行,它都会从列表视图的第一行获取值,并将标签也设置在列表视图的第一行。

我已经做了几十次尝试让它工作,但不能让它使用正确的行。

如何确保它获取并设置正确的值?

谢谢

function countdown() {
      interval = setInterval(function () {
          var lbl = document.getElementById("ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl0_lblCountDown");
          var txt = document.getElementById("ctl00_ContentPlaceHolder1_lstViewFormulas_ctrl0_txtTimeMinutes");


  <asp:Button ID="buttStartTimer" runat="server" OnClientClick="javascript:countdown()" Text="Start" />
  <asp:Button ID="buttStopTimer" runat="server" OnClientClick="javascript:stopcountdown()" Text="Stop" />
  <asp:TextBox runat="server" ID="txtTimeMinutes" Text='<%#Eval("FormulaTiming")%>'></asp:TextBox>
  <asp:Label ID="lblCountDown" runat="server" Text=""></asp:Label>

其他尝试

  <%--<input type="button" onclick='countdown()'; value="Start" id="Start" />
  <input type="button" onclick='stopcountdown()'; value="Stop" id="Stop" />--%>
  <%--<input type="button" onclick='countdown(this.form.TimeMinutes, this.form.spCountDown)'; value="Start" id="Start" />
   <input type="button" onclick='stopcountdown()'; value="Stop" id="Stop" />--%>
  <%-- <input type="button" onclick='<%# Eval("FormulaTiming", "countdown({0});")%>' value="Start" id="Button2" />
  <input type="button" onclick='stopcountdown()'; value="Stop" id="Button3" />--%>
  <%--<input type="text" value='<%#Eval("FormulaTiming")%>' id="txtTimeMinutes" />--%>
4

1 回答 1

0

你可以改用jquery吗:

给所有按钮一个类,然后使用 jquery 找到该类:

$(".myButtonClass").click(function() {
    var buttonID = $(this).attr('id');
    var listViewRowID = buttonID.substring(buttonID.lastIndexOf('_') + 1);
    updateLabel("ctl00_ContentPlaceHolder1_lstViewFormulas_ctr"+listViewRowID+"_lblCountDown")
}

然后只需编写您的 updateLabel 命令来更新输入标签

请注意,这还没有经过测试(只是在我的脑海中)

于 2013-01-24T13:25:17.720 回答