我使用ASP.NET和jQuery,我使用Dialog。在这个Dialog中我有Webcontrols。如果我单击对话框中的一个按钮,然后对话框关闭,但如果我在此对话框中搜索用户,我不希望该对话框关闭:(
以下是我的问题的示例:
如果我点击lupe符号,我可以在Active Directory中打开一个用于搜索用户的对话框。
但如果我点击对话框上的搜索按钮然后它先关闭,如果我打开对话框agein,我可以看到找到的用户:/
如果我单击选项卡“Signatur”,我会遇到同样的问题如果我点击按钮,页面会加载新选项“Abwesenheit”,但如果我点击标签“signatur”agein就会创建Signatur :(
我的代码:(对话框的jquery代码)
$(document).ready(function () {
$("#dialog").dialog({
autoOpen: false,
modal: true,
resizable: false,
height: 450,
width: 600,
closeOnEscape: false,
buttons: {
}
});
$("#dialog").parent().appendTo($("form:first"));
$("#DialogOpen").click(function () {
$("#dialog").dialog("open");
$("#dialog").parent().appendTo($("form:first"));
return false;
});
});
这是我的ASPX:
<div id="dialog" title="Vertreterliste">
<asp:TextBox ID="txtBox" runat="server" ></asp:TextBox>
<asp:ImageButton ID="imageSearch" runat="server"
ImageUrl="~/Theme/Pictures/lupe.jpg" Height="24px" Width="25px"
onclick="imageSearch_Click" />
<hr />
<asp:ListView runat="server" ID="myListView" OnItemCommand="myListView_ItemCommand"
OnSelectedIndexChanging="myListView_SelectedIndexChanging">
....
</asp:ListView>
</div>
如果单击Web控件,我可以做什么,Dialog不会收集:/
答案 0 :(得分:2)
您的对话框正在关闭,因为您的网页控件正在回发,因此,整个页面正在发布到服务器,当它再次返回时,它没有打开对话框的信息。
因此,您可以通过使用UpdatePanels停止对话以关闭web控件,或者通过ajax发送请求。
或者您可以在隐藏字段中存储对话框打开状态,当页面加载回来时,检查此隐藏字段值并根据值再次使用客户端脚本打开对话框。
答案 1 :(得分:1)
我在div下面打开。当我点击删除按钮中的删除按钮时,我有类似“lnkDelete”的类。
<div id="dialog-confirm" title="Delete Country">
<p>
Are you soure you wont to delete this record ?</p>
</div>
<script type="text/javascript">
$(function () {
$(".lnkDelete").button();
$("#dialog-confirm").dialog({
autoOpen: false,
model: true,
width: 300,
resizable: false,
height: 200
});
$(".lnkDelete").click(function (e) {
e.preventDefault();
var targeturl = $(this).attr("href");
$("#dialog-confirm").dialog({
buttons: {
"Confirm": function () {
window.location.href = targeturl;
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
$("#dialog-confirm").dialog("open");
});
});
</script>
我认为这会对你有所帮助......