0
有可能我正在這樣做,但是在這裏。我在一個updatepanel之外有一個滑塊,用於刷新該面板的內容。我將滑塊值傳遞給隱藏字段,並使用.Net TextChanged事件刷新面板。從jQueryUI滑塊刷新UpdatePanel當值不變時
所有的作品很好,直到我只是單擊句柄而不滑動它,所以值是相同的,它仍然觸發滑塊「更改」事件,但因爲隱藏字段中的值沒有改變.Net TextChanged事件doesn沒有火,所以面板的內容消失了。
如果在沒有移動句柄的情況下有一種方法可以忽略點擊,或者在代碼隱藏中保持相同值傳遞給數據函數的某種方式,那將是一件好事。
任何想法理解
戴夫
代碼(爲清楚起見略縮短)
<script>
$(document).ready(function() {
$("#slider").slider({
min: 1,
max: sizes.length - 1,
value: 2,
animate: true,
create: function (event,ui){
$("#slider").find(".ui-slider-handle").text("8")
},
slide: function (event, ui) {
var value = $("#slider").slider("option", "value");
$("#slider").find(".ui-slider-handle").text(sizes[ui.value]);
},
change: function (event, ui) {
var value = $("#slider").slider("option", "value");
$("#slider").find(".ui-slider-handle").text(sizes[ui.value]);
$("#<%= hid.ClientID %>").val(sizes[ui.value]);
var UpdatePanel1 = '<%=ajaxGrid.ClientID%>';
__doPostBack(UpdatePanel1, '');
},
stop: function (event, ui) {
}
});
});
</script>
<div id="slider" style="width:400px;"></div>
<asp:UpdatePanel runat="server" ID="ajaxGrid" UpdateMode="Conditional">
<ContentTemplate>
<div id="productgrid" class="productgrid" runat="server"></div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:HiddenField ID="hid" runat="server" OnValueChanged ="portionCount_TextChanged" />
代碼後面
List<product> _products = new List<product>();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
loadJSArray();
_products = product.getProductsByCatParentAndServings(61, 8); // default
}
drawGrid();
}
protected void portionCount_TextChanged(object sender, EventArgs e)
{
_products = product.getProductsByCatParentAndServings(61, int.Parse(hid.Value));
drawGrid();
}