2013-04-21 82 views
0

我检查了很多关于我的问题的博客答案,我也从这个网站找到了一些解决方案,我尝试了所有这些解决方案。但我不知道为什么呢?这些解决方案没有解决我的问题,我总是得到错误。 最后,我发现一个解决方案,我认识到这是真实的,因为在许多地方这个解决方案被接受。但这无法再解决我的问题。一起使用Repeater和jQuery

$("#<%=plusBttn.ClientID%>") 

我在尝试此解决方案时遇到此错误:plusBttn在当前上下文中不存在。

我为我的按钮和文本框使用客户端模式的可预测模式。简单地说,我想改变数量,这显示在一个文本框(QuantityTxtbx),用控制我的按钮(minusBttn减少quantityTxtbx值的值和plusBttn同样用于增加值)

其实我的问题是在查找我在jscript中使用ClientID控制。

代码上面的显示都在直放站,ItemTemplate:它

在asp.net页面我的JScript代码:

$(document).ready(function() { 

    $("#<%=plusBttn.ClientID%>").click(function() { 
     var value = parseInt($("input[id$='QuantityTxtbx']").val()); 
     value = value + 1; 
     $("input[id$='QuantityTxtbx']").val(value); 
     }); 

    $("input[id$='#minusBttn_']").click(function() { 
       var value = parseInt($("input[id$='QuantityTxtbx']").val()); 
            if (value > 1) 
             value = value - 1; 
            $("input[id$='QuantityTxtbx']").val(value); 
           }); 
          }); 

我的控制;

<asp:Button ID="minusBttn" runat="server" Text="-" ClientIDMode="Predictable"/> 
    <asp:TextBox ID="QuantityTxtbx" runat="server" Text='<%#Eval("Quantity") %>' Enabled="False" EnableTheming="False" EnableViewState="False" Height="16px" Width="16px" Wrap="False"ClientIDMode="Predictable">1</asp:TextBox> 
    <asp:Button ID="plusBttn" runat="server" Text="+" ClientIDMode="Predictable" /> 

好遗憾的误解,这里是我的浏览器端代码:

<script type="text/jscript"> 

         $(document).ready(function() { 
          var plusBttn = $("input[id$='minusBttn']"); 
          $("input[id$='#minusBttn_']").click(function() { 
           var value = parseInt($("input[id$='QuantityTxtbx']").val()); 
           value = value + 1; 
           $("input[id$='QuantityTxtbx']").val(value); 

          }); 
          $("input[id$='#minusBttn_']").click(function() { 
           var value = parseInt($("input[id$='QuantityTxtbx']").val()); 
           if (value > 1) 
            value = value - 1; 
           $("input[id$='QuantityTxtbx']").val(value); 
          }); 
         }); 

        </script> 

        <input type="submit" name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$minusBttn" value="-" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_minusBttn_0" /> 


        <input name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$QuantityTxtbx" type="text" value="2" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_QuantityTxtbx_0" disabled="disabled" style="height:16px;width:16px;" /> 
        <input type="submit" name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$plusBttn" value="+" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_plusBttn_0" /> 
+0

什么输出HTML和脚本看起来像在浏览器源? – charlietfl 2013-04-21 12:13:48

+0

他们在中继器和桌子上。这个按钮和文本框是我在同一个td中讨论过的。 – user2304054 2013-04-21 12:30:17

+0

jscript,我用它来控制它们。 (要更改文本框的值) – user2304054 2013-04-21 12:31:43

回答

0

尝试使用下面的代码:

$("#<%#Container.FindControl("plusBttn").ClientID%>") 

我们已经知道了母版页chagnes ID的基于内容ContentPlaceHolder和中继器它迭代新的ID的任何事情你的数据库连接。 jquery .FindControl适用于您的数据绑定plusBttn ClientID's。

然后更新您的jQuery脚本可能:

$(document).ready(function() { 
var plusBttn = $("#<%#Container.FindControl("plusBttn").ClientID%>"); 
$("#<%#Container.FindControl("minusBttn").ClientID%>").click(function() { 
    $("#<%#Container.FindControl("QuantityTxtbx").ClientID%>").val(); 
    }); 
$("#<%#Container.FindControl("minusBttn").ClientID%>").click(function() { 
    $("#<%#Container.FindControl("QuantityTxtbx").ClientID%>").val(); 
    }); 
});