我在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。
感谢您的帮助。
答案 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
中的加载事件中。