我想从Codebehind显示一个jQuery UI对话框,需要在回发后刷新它.
该对话框是一个用于过滤和查找数据的控件.因此,用户从DropDownLists中选择并在TextBoxes中输入文本,单击"Apply-Button",发生异步回发,根据用户的选择过滤数据,结果将显示在GridView中.因此,我需要更新GridView周围的UpdatePanel.
异步回发在这些链接的帮助下工作:
(基本上是dlg.parent().appendTo(jQuery("form:first"));
-Solution)
问题:我无法使用UpdateMode ="Always"更新UpdatePanel,也无法通过UpdatePanel.Update()从代码隐藏手动更新UpdatePanel.我认为它与Dialog不在UpdatePanel内部或类似的东西有关.希望有人可以帮助我.
一些来源:
function createChargeFilterDialog() {
//setup dialog
$('#Dialog_ChargeFilter').dialog({
modal: true,
resizable: false,
autoOpen: false,
draggable: true,
hide: "Drop",
width: 850,
height: 600,
position: "center",
title: "Charge-Filter",
buttons: {
"Close": function () {
$(this).dialog("close");
}
},
open: function (type, data) {
$(this).parent().appendTo(jQuery("form:first"))
},
close: function (type, data) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
当点击通过BtnShowDialog(在jQuery-Dialog之外)时,它会从代码隐藏中调用
AjaxControlToolkit.ToolkitScriptManager.RegisterStartupScript _
(Me.Page, GetType(Page), "showChargeFilterDialog", "createChargeFilterDialog();$('#Dialog_ChargeFilter').dialog('open');", True)
Run Code Online (Sandbox Code Playgroud)
更新:我也注意到postback-values中存在问题.所有TextBoxes如果为空或没有附加逗号.这表示根据以下内容多次呈现控件:http://www.componentart.com/community/forums/t/60999.aspx
我确信这两个问题都是相关的.将在每个异步回发中重新创建包含其所有控件的整个对话框,因此所有控件名称在DOM中存在多次(导致ViewState逗号附加问题).控件只能在FireBug/IE开发工具栏中看到,而不能在HTML-Source中看到,因此我假设jQuery会导致这些问题.如何处理对话框或如何防止对话框 …
我有一个禁用的TextBox,我正在使用JavaScript编辑客户端的值.当我尝试在服务器端检索值时,它不反映客户端上所做的更改.如果我将TextBox的enabled属性设置为true,我可以检索该值,但用户可以放置焦点并编辑TextBox.
是否有一种理智的方法来阻止用户对TextBox进行聚焦和编辑?