2011-09-06 39 views

回答

4

當然是!您必須將與您的SliderExtender關聯的asp:TextBox控件的值設置爲所需的值。因此,對於這個ASP標記:

<asp:TextBox ID="sliderBox" runat="server" ClientIDMode="Static"></asp:TextBox> 
<asp:SliderExtender ID="sliderBox_SliderExtender" runat="server" Enabled="True" 
    Maximum="100" Minimum="0" TargetControlID="sliderBox"> 
</asp:SliderExtender> 
<asp:Button ID="incButton" runat="server" Text="incrementSlider" 
    onclientclick="change();" /> 

這基本上是:

  1. 命名sliderBox(爲SliderExtender使用)
  2. asp:SliderExtender sliderBox_SliderExtender(與基本 默認值)
  3. asp:TextBox一個名爲incButton的asp:Button。這具有onClientClick屬性調用change() javascript函數

這裏是change()功能:

<script type="text/javascript"> 
    function change() { 
     document.getElementById("sliderBox").value += 10; 
    } 
</script> 

change()功能在asp:TextBox控制由10遞增值,從而增加每個滑塊位置當你點擊按鈕。

+0

該腳本工作原因是'incButton'是ASP按鈕,所以在文本框值被設置爲客戶端後發生點擊後發生。如果添加'返回false';爲了防止回傳位置,「更改」功能不會改變。我純粹做客戶端的方式是找到'slider'div並將其設置爲'style.left'值。爲了獲得正確的位置,你必須用最大值來確定線的長度,然後將其乘以一步(在這種情況下爲10)。 – PrzemG

+0

我不確定我是否理解你的關注/反饋,@PrzemG。但是在我看來,不是所有返回false的東西都可以使用不同的(客戶端)控件。而不是試圖阻止回發,使用鏈接與href =「#」,並處理它的點擊事件。 – jadarnel27

+0

我的觀點是,改變sliderBox元素客戶端的'值'在頁面上沒有視覺效果,直到你做回發。如果你用href =「#」將asp:Button更改爲,它將不起作用 - 滑塊不會移動。此外,元素的值是文本,所以'+10'會將字符串'10'附加到現有字符串中,所以如果現有值爲30,則將其更改爲3010而不是40。 – PrzemG

相關問題