2013-04-21 85 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(); 
    }); 
});