![](/img/trans.png)
[英]How to call a Javascript function having return value in c# codebehind
[英]Calling jQuery function using C# CodeBehind with return value
我有一个ASP.NET应用程序,用于显示服务器中有关供水公司各种站点的信息。 我有一个jQuery方法,它返回在div'info'中单击的超链接的文本:
<script type="text/javascript">
$('#info a').click(function getName()
{
return ($(this).text());
});
</script>
我可以使用代码使用C#codebehind来调用此方法
ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "getName()", true);
但是我无法获得它的返回值,这就是我需要的。 任何人都可以对此有所了解吗?
使用隐藏字段:
<input type="hidden" id="myhiddenField" name="myhiddenField" runat="server" />
和JQuery( 尚未测试过 ):
<script type="text/javascript">
$('#info a').click(function getName()
{
$("#myhiddenField").val($(this).text());
});
</script>
然后,您将能够访问myhiddenField.Value
后面的代码中的隐藏字段。
或者,如果您想使用Ajax Call,请参阅此处的教程
编辑:
我创建了一个小项目,以下工作对我来说很好(我得到警告“测试”):
<script type="text/javascript">
$(document).ready(function () {
$('#info a').click(function getName() {
// As control having runat="server" their ids get changed
// selector would be like this
$("#<%= myhiddenField.ClientID %>").val($(this).text());
alert($("#<%= myhiddenField.ClientID %>").val());
});
});
</script>
<div id="info">
<a href="#">testing</a>
</div>
<input type="hidden" id="myhiddenField" name="myhiddenField" runat="server" />
在文档准备好之后,您需要从ASP.NET中的JavaScript激活按钮单击事件
像这样
ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "$(function() {
$( ‘#info a
‘ ).click(); });
", true);
有关详细信息,请参阅Click()
尝试在后面的代码上调用Javascript函数
ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:FUNCTIONNAME(); ", true);
如果你有UpdatePanel,那么尝试这样
ScriptManager.RegisterStartupScript(GetType(), "Javascript", "javascript:FUNCTIONNAME(); ", true);
更新答案:
客户端:创建一个函数并将值设置为隐藏字段作为客户端,并在服务器端调用此函数并获取隐藏字段值
JS:
function myFunc(){
//set you value to hiddenfield
$(".hdfiled").val("Hello");
alert($(".hdfiled").val());
}
代码背后:这里是从服务器端调用myFunc
,因为你的标题是来自CODE BEHIND的调用函数
ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:myFunc(); ", true);
string getHd_Value= myhiddenField.value;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.