【发布时间】:2014-09-25 15:08:20
【问题描述】:
这可能是我绕道而行的方式,但这里是这样。我在更新面板外有一个滑块,用于刷新该面板的内容。我将滑块值传递给隐藏字段并使用 .Net TextChanged 事件刷新面板。
一切都很好,直到我只单击手柄而不滑动它,所以值是相同的,它仍然会触发滑块“更改”事件,但是因为隐藏字段中的值没有改变 .Net TextChanged 事件没有t 触发,所以面板的内容消失了。
如果有一种方法可以在不移动手柄的情况下忽略单击,或者有某种方法可以保持相同的值传递给代码隐藏中的数据函数,那就太好了。
任何想法表示赞赏
戴夫
代码(为了清楚起见稍微缩短)
<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();
}
【问题讨论】:
标签: asp.net jquery-ui updatepanel