我需要什么:我有需要更改和更新的工作代码。我有一个模态控件(就像一个弹出框),可以通过单击按钮调用。现在,我需要在vb.net代码中计算一些东西,然后决定调用它。 (出现弹出框)
问题:它被调用,但我必须在我的按钮上单击两次。调用仅在CssClass设置如下时发生:CssClass="osx ImageButton100"
背景:我正在使用的模态控件:http://www.ericmmartin.com/projects/simplemodal-demos/
所做的更改:
Before:
<asp:Button ID="btnCheckOut" runat="server" Text="Preview Order" CssClass="osx ImageButton100" />
现在:
<asp:Button ID="btnCheckOut" runat="server" Text="Preview Order" />
btnCheckOut.CssClass = "osx ImageButton100"
完整代码:
答案 0 :(得分:1)
在您的代码隐藏中,Utils.MessageBox
是什么? (从按钮单击事件处理程序调用)。
无论如何,我认为你的代码表现得像设计的那样。步骤进行:
您通过发出回发来破坏客户端代码的流程(按钮单击调用服务器端事件处理程序)。有几种选择如何进行流程:
UpdatePanel
方法。鉴于你的按钮点击事件处理程序有多简单,我建议使用第三个选项。所以忘记了btnCheckOut
的服务器端事件处理程序。从已经设置为osx ImageButton100
的按钮类开始。然后将您的javascript点击处理程序更改为更像:
$("input.osx, a.osx").click(function (e) {
e.preventDefault();
var lineCount = $("#txtApprovalNotes").val()
.match(/[^\n]*\n[^\n]*/gi).length;
if (lineCount > 20) {
alert("Approval notes has a limit of 20 lines.";
} else {
$("#osx-modal-content").modal({
overlayId: 'osx-overlay',
containerId: 'osx-container',
closeHTML: '<div class="close">
<a href="#" class="simplemodal-close" style="font-size:150%;">x</a></div>',
minHeight:80,
opacity:65,
position:['0',],
overlayClose:true,
onOpen:OSX.open,
onClose:OSX.close,
appendTo:'form'
});
}
});
这不仅可以简化逻辑流程,而且还可以减少回调,并在浏览器中提高响应速度。