gpt4 book ai didi

c# - 在 jQuery 对话框中模拟另一个按钮回发

转载 作者:行者123 更新时间:2023-11-30 21:22:26 26 4
gpt4 key购买 nike

我有以下 ASPX 页面:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script src="js/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.6.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {

$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
height: 300,
modal: true,
buttons: {
'Ok': function() {
$(this).dialog('close');
__doPostBack('TreeNew', '');
},
Cancel: function() {
$(this).dialog('close');
}
},
close: function() {
;
}
});
});
function ShowDialog() {
$('#dialog').dialog('open');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="TreeNew" runat="server" Text="Nuevo" OnClientClick="ShowDialog(); return false;"/>
<asp:Label ID="Message" runat="server"></asp:Label>
<div id="dialog" title="Create new user">
<p id="validateTips">All form fields are required.</p>
<asp:RadioButtonList ID="ContentTypeList" runat="server">
<asp:ListItem Value="1">Text</asp:ListItem>
<asp:ListItem Value="2">Image</asp:ListItem>
<asp:ListItem Value="3">Audio</asp:ListItem>
<asp:ListItem Value="4">Video</asp:ListItem>
</asp:RadioButtonList>
</div>
</div>
</form>
</body>
</html>

当用户点击 TreeNew 按钮时出现模态对话框,然后他/她选择一个选项并点击 Ok 按钮进行回发。

我需要服务器端执行 TreeNew_Click 方法:我该怎么做?

如果我使用 __doPostBack('TreeNew', '') 它会抛出以下错误:“预期对象”。

更新:
我找到了错误的根源:未定义函数__doPostBack。我不会删除问题,因为我认为 Chris Clark 的回答非常有趣。

最佳答案

通常,如果您发现自己曾经输入文本“__doPostBack(...”,您应该重新评估您的方法。

在这种情况下,您应该将一个服务器端的 asp.net 按钮放在您要转换到对话框中的 div 中,并使用它来代替生成 jQuery 按钮。这样回发代码就会为你连接起来。然而,有一个警告 - 当 jQuery 将您的 div(我假设它是一个 div)变成一个对话框时,它将 div 从表单元素中删除。这意味着您必须在回发发生之前将其附加到表单。您可以在对话框的关闭功能中执行此操作。然后回发将正确发生。

如果你真的想使用生成的 jQuery OK 按钮,你有几个选择。首先,您可以在页面上点击一个服务器端的 asp.net 按钮并将其隐藏,然后从 OK 按钮的代码中调用 asp.net 按钮的单击事件。其次,您可以使用 Page.ClientScript.GetPostBackEventReference 从服务器发出一个 javascript 函数,该函数将包含您在上面尝试手写的 __doPostBack 代码。然后从 OK 按钮的 JS 代码调用发出的函数。

关于c# - 在 jQuery 对话框中模拟另一个按钮回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2321367/

26 4 0