首次使用后,使用OnClientClick打开图表窗口失败

时间:2016-10-31 16:03:14

标签: c# asp.net

我在Windows10和C#上使用VS2015。我的应用程序有4个选项,所有选项都在同一窗口中串行执行,在gridview中显示输出;某些选项还会显示一个按钮,用于在单独的窗口中绘制选定行的图表。 在选项之间切换工作正常,我第一次工作正常。我的问题是当我关闭图表窗口时,运行其他选项,然后回到图表窗口,按钮点击失败。将显示一个带有图表图标的窗口,因此OnClientClick似乎已运行,但OnClick从不执行且图表未填充。

我不懂Java,所以不知道如何调试它。有人可以建议修复或替代不使用Java!

以下是按钮点击中的关键代码。

<asp:Button 
   ID="GoChart" 
   CssClass="button" 
   runat="server" 
   Text="Select, then Chart" 
   Visible="false" 
   Style="border-radius: 0.4em; width: 9em; float: left; margin-left: 1px; color: white;" 
   ToolTip="Select a row in the grid, then click here to chart the row. " 
   OnClick="GoChart_Click1" 
   OnClientClick="window.open('NewChart.aspx','_blank');return false"/>

在第二次使用图表按钮时,永远不会到达GoChart_Click1。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

OnClientClick="window.open('NewChart.aspx','_blank');return false"

OnClientClick="window.open('NewChart.aspx','_blank');"

返回false将停止服务端单击按钮。如果您希望在客户端点击删除return false部分后执行服务端操作。

答案 1 :(得分:2)

实际上永远不应该执行函数public void CompleteCaptcha() { WebAssert.IsDisplayed(LoginPage.CaptchaElement.Frame); var mainFrame = Driver.CurrentWindowHandle; Driver.SwitchTo().Frame(LoginPage.CaptchaElement.Frame); WebAssert.IsDisplayed(LoginPage.CaptchaElement.Checkbox); Driver.ExecuteJavaScript<object>("document.getElementsByClassName('recaptcha-checkbox-checkmark')[0].click()"); Driver.SwitchTo() .Window(mainFrame); LoginPage = new LoginPage(Driver); } ,因为在GoChart_Click1中你返回false表示浏览器没有执行按钮的默认行为,即调用OnClientClick。< / p>

删除GoChart_Click1以执行return false;

但是,我不认为这会解决您的问题,因为我看不出您如何使用GoChart_Click1内新打开的窗口执行某些操作。

我想您需要分享GoChart_Click1的来源和GoChart_Click1的来源,以获得更详细的答案。

我认为,填充图表的NewChart.aspx中的任何代码都会更好地放在GoChart_Click1中的加载事件中。