[英]calling javascript from c#
我需要使用javascript函数来显示和隐藏页面上的元素,但是需要从C#方法中调用它。 这可能吗?
编辑:我尝试了RegisterStartupScript(见下文),但这并没有隐藏我所希望的元素:
HidePopup("CompanyHQSetup", "$('#<%=DivDataProvider.ClientID %>').hide();$('#<%=modalOverlay.ClientID %>').hide();");
private void HidePopup(string Key, string jscript)
{
string str = "";
str += "<script language='javascript'>";
str += jscript;
str += "</script>";
RegisterStartupScript(Key, jscript);
}
编辑:通过使用隐藏字段布尔值来解决此问题,以确定是否隐藏或显示元素
是的,签出RegisterClientScriptBlock 。
这是该链接的摘录:
public void Page_Load(Object sender, EventArgs e)
{
// Define the name and type of the client script on the page.
String csName = "ButtonClickScript";
Type csType = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(csType, csName))
{
StringBuilder csText = new StringBuilder();
csText.Append("<script type=\"text/javascript\"> function DoClick() {");
csText.Append("Form1.Message.value='Text from client script.'} </");
csText.Append("script>");
cs.RegisterClientScriptBlock(csType, csName, csText.ToString());
}
}
一个是服务器端,另一个是客户端。 它们可以相互传递变量(通过表单/查询字符串/ cookie可以将JavaScript传递给ASP,而通过response.writing变量可以将ASP传递给JS),但是它们不能直接交互。
您可以使用page.RegisterClientScript方法来执行以下操作: http://msdn.microsoft.com/zh-cn/library/system.web.ui.page.registerclientscriptblock.aspx
试一试
Javascript是客户端,c#是服务器端。 您不能直接从C#调用javascript。 不过,请看一下Comet ,它将向您展示如何将数据从HTTP服务器推送到网页。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.