2012-11-20 50 views
1

你會如何做到這一點?我不是一個JavaScript的智者,所以我還沒有找到一個解決方案...AJAX Slider Control ...需要第二個標籤來反映百分比

我有一個滑塊,我想指出將用於項目管理與設計的項目預算的百分比。所以在默認狀態下,項目管理和設計之間的比例將是50/50。如果他們以某種方式滑動它,它會使設計的百分比偏離,反之,對於PM ......你明白了。

因此,常規標籤顯示的範圍是0-100。例如,我可以用它來表示項目管理預算的百分比。

現在,我想要的是反映設計百分比的第二個標籤。 (這將是從100中減去PM標籤值。)你會怎麼做?

這是我到目前爲止有:

Campaign Budget: 
<br /> 
<table> 
    <tr> 
     <td> 
      Total Dollars: 
     </td> 
     <td colspan="3"> 
      Use the slider to modify the percentage between Project Management and Design. 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <asp:TextBox ID="totaldollarsbid" runat="server"></asp:TextBox> 
     </td> 
     <td> 
      WANT DESIGN PERCENTAGE LABEL HERE 
     </td> 
     <td> 
      <asp:TextBox ID="SliderBox" runat="server" Text="50" ClientIDMode="Static"></asp:TextBox> 
      <ajaxToolkit:SliderExtender ID="SliderExtender" runat="server" TargetControlID="SliderBox" 
       Minimum="0" Maximum="100" BoundControlID="SliderLabel" /> 
     </td> 
     <td> 
      <asp:Label ID="SliderLabel" runat="server"></asp:Label> 
     </td> 
    </tr> 
</table> 

回答

0

將這個標籤,你需要有設計值:<asp:Label runat="server" ID="DesignValueLabel" Text="50" />和下方的頁面上添加腳本:

<script type="text/javascript"> 
    function pageLoad() { 
     var extender = $find("<%= SliderExtender.ClientID %>"); 
     extender.remove_valueChanged(updateDesignValue); 
     extender.add_valueChanged(updateDesignValue); 
    } 

    function updateDesignValue(sender, eventArgs) { 
     var design = 100 - sender.get_Value(); 
     $get("<%= DesignValueLabel.ClientID %>").innerHTML = design; 
    } 
</script> 

如果滑塊不放置在更新面板中,則代替pageLoad函數,您可以使用下面的腳本(必須放置在ScriptManager或ToolkitScriptManager控件之後)

Sys.Application.add_load(function() { $find("<%= SliderExtender.ClientID %>").add_valueChanged(updateDesignValue); }); 
+0

好的,試過了腳本,我在這一行上得到一個「object null」錯誤:extender.remove_valueChanged(updateDesignValue);有什麼我需要添加到我的網站?我有腳本文件夾中的jQuery的東西...然後,當你說「如果滑塊沒有放在更新面板」,你的意思是,如果它不在更新面板(它不是),然後添加「系統。應用程序「行後aspx頁面上的scriptmanager引用? – walstib

+0

我用更新面板創建了一個完全空白的頁面,並放入代碼中。仍然收到錯誤:「microsoft jscript運行時錯誤:無法獲取屬性值'updateDesignValue';對象爲null或未定義。」那麼,我是否錯過了允許我運行jquery的東西? (我不認爲我從來沒有得到與jQuery功能的錯誤!) – walstib

0

好的,我試過這個......我添加了一個按鈕來「更新設計值」...所以當按鈕被點擊時,jquery函數將設計標籤更新爲100減去PM標籤...

<asp:TextBox ID="SliderBox" runat="server" Text="50"></asp:TextBox> 

<ajaxToolkit:SliderExtender ID="SliderExtender" runat="server" 
TargetControlID="SliderBox" 
Minimum="0" 
Maximum="100" Steps="21" 
BoundControlID="SliderPMLabel" 

/> 
<asp:Button ID="btnTest" runat="server" Text="Update Design Value" /> 
<br /> <asp:Label ID="SliderPMLabel" runat="server"></asp:Label>% Project Management 
<br /><asp:Label ID="SliderDesLabel" runat="server"></asp:Label>% Design 

<script type="text/javascript"> 
$(function() { 


    $('#<%= btnTest.ClientID %>').click(function() { 
    var labelText = $('#<%= SliderPMLabel.ClientID %>').html(); 
     $('#<%=SliderDesLabel.ClientID%>').html(100 - labelText); 
     return false; 
    }); 


}); 


</script> 

它工作正常。但我希望設計標籤值隨着滑塊移動而動態變化。

其中一點是,頁面加載時不會發生......當用戶從下拉列表中選擇一個客戶端時,則會出現該選擇。