gpt4 book ai didi

c# - 在 ASP.NET 中如何使 OnClick 在 OnClientClick 之后执行?

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

我正在使用 C# 开发 ASP.NET Web 表单应用程序。我有一个按钮需要运行一些客户端 Javascript(使用 OnClientClick 属性),然后在客户端代码返回 true 时运行服务器端代码(使用 OnClick)。在使用 jQuery-ui 确认对话框之前我已经做过很多次了,但是这次我的客户端代码不是确认对话框并且它不起作用 - 服务器端(OnClick)事件甚至从未被触发尽管我明确返回 true。

这是有问题的客户端代码,它正在运行(我已经验证它通过 alert() 调用返回了正确的值):

<script type="text/javascript">
//Function to hide edit fields
function hideEditFields(retVal) {
//Hide all edit divs
var editName = document.getElementsByClassName("editField");
for (i = 0; i < editName.length; i++) {
editName[i].style.display = 'none';
}
//Show all view divs
var viewName = document.getElementsByClassName("viewField");
for (i = 0; i < viewName.length; i++) {
viewName[i].style.display = 'block';
}

//Make investigated & corrective action checkboxes non-highlighted
$('<%=cbInvestigatedY.ClientID%>').removeClass("editable");
$('<%=cbInvestigatedN.ClientID%>').removeClass("editable");
$('<%=cbCorrectiveY.ClientID%>').removeClass("editable");
$('<%=cbCorrectiveN.ClientID%>').removeClass("editable");

//Show edit button
var editButton = document.getElementById("editButton");
editButton.style.display = 'block';
//Hide save button
var saveButton = document.getElementById("saveButton");
saveButton.style.display = 'none';

//alert("returning " + retVal);
return retVal;
}
</script>

下面是调用此函数的按钮:

<asp:Button ID="btnSaveChanges" runat="server" OnClientClick="return 
hideEditFields(true);" OnClick="btnSubmit_Click" Text="Save Changes" />

我已经尝试过使用 UseSubmitBehavior="true" 和不使用它,这似乎没有什么区别。我在 Javascript 控制台中没有收到任何错误,并且 Javascript 代码正在执行它应该执行的操作,只是没有调用服务器端方法。

这是 ASP.NET 呈现提交按钮的方式(在查看源代码中):

<input type="submit" name="ctl00$MainContent$btnSaveChanges" value="Save Changes"
onclick="return hideEditFields(true);WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions(&quot;ctl00$MainContent$btnSaveChanges&quot;, &quot;&quot;,
true, &quot;&quot;, &quot;&quot;, false, false))"
id="ctl00_MainContent_btnSaveChanges" />

最佳答案

请尝试从调用客户端点击中删除 return。我认为您应该像这样调用函数 onclientclick:

<asp:Button ID="btnSaveChanges" runat="server" OnClientClick="hideEditFields('true');"  Text="Save Changes" onclick="btnSubmit_Click" />

关于c# - 在 ASP.NET 中如何使 OnClick 在 OnClientClick 之后执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17300294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com