我有一个 C# 函数,我想在其中调用/运行一些 JavaScript:
protected void DetailsView1_DataBound(object sender, EventArgs e) {
...
// call/run JavaScript
...
}
我正在处理一个表单,特别是提交表单。单击“提交”后,将运行几个 C# 函数来处理验证和其他杂项任务。完成这些后,我需要运行一些 JavaScript,但我无法同步这些事件。 JavaScript 是:
...
if (uploader.total.uploaded == 0) {
if (uploader.files.length > 0) {
uploader.start();
}
e.preventDefault();
}
...
我一直尝试这样做的方法是通过 jQuery 检测“提交”按钮上的点击事件并运行我的 Javascript,但表单本身不会提交。我已经尝试过此的变体,但我没有运气。
那么我该如何实现呢? “RegisterClientScript”是我应该研究的东西吗?如果是这样,可能的解决方案是在 PageLoad 上注册 JavaScript 并将其附加到“提交”按钮吗?如果是这样,我将如何在代码中执行此操作?
如果我需要进一步澄清我的问题,请告诉我。
更新
一点澄清......这个页面上的表单是通过一个按钮提交的:
<asp:CommandField ValidationGroup="request" ButtonType="Image"
CancelText="Reset" CancelImageUrl="../images/internal/btn_reset.gif"
InsertImageUrl="../images/internal/btn_insert.gif" ShowEditButton="True"
ShowInsertButton="True" />
这将创建 2 个按钮,插入按钮是提交按钮,因此我将其称为提交按钮。
谢谢,
赫里斯托
最佳答案
在常见问题解答中查看:
http://forums.asp.net/t/1360420.aspx#_How_to_register
private void Button2_Click(object sender, System.EventArgs e)
{
string str;
str="<script language='JavaScript'>";
str+="selectRange()";
str+="<script>";
Literal1.Text=str;
}
ASP.NET WebForms 的主要缺点是您必须购买 WebForm 模型——它在 C# 中执行所有逻辑并让 WebForms 为您处理 JavaScript。这就是为什么您必须像常见问题解答告诉您的那样诉诸扭曲。 WebForms 旨在使您的 Web 应用程序像桌面应用程序一样实现——但这并不总是很有效。
ASP.NET MVC 的主要优点是您可以完全控制标记、JavaScript 等。当然缺点是您无法访问 WebForms 拥有的所有丰富的内容控件。但是,MVC 更适合大多数其他平台上的 Web 编程。
关于c# - 有没有办法从 C# 调用/运行 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464441/