我在工作中遇到了一些问题,就是在html文件调用javascript好用,可是用.net 调用JS就不好用,找了很多资料,但是还不好用。现在求大家有没有什么好的文章或好的书介绍一下,让我好好学习一下.net对JS的操作。谢谢大家了。
还有我感觉.net对Js的操作有一定困难也许我的技术还不有到家,希望大家发表一下自己的看法和相关的书籍或文章,谢谢大家。
还有我感觉.net对Js的操作有一定困难也许我的技术还不有到家,希望大家发表一下自己的看法和相关的书籍或文章,谢谢大家。
解决方案 »
- 在gridview中为sql语句或存储过程传参的问题
- 请问这种需求应该如何设计数据库表结构?
- 怎么Response.Redirect传出来的中文值总是变成乱码~~~!
- 请看一下这个访问sql的类有什么问题,谢谢?急!!
- 求救:有关字段定义的问题,我按照海波的“如何建立“仅字段定义”ttx的数据源(在数据资源管理器中\更多数据源下面)”
- <script src="xx.js?wIJ" type="text/javascript"></script>,?wIJ"?
- MVC3 查询返回指定字段如何写?
- asp.net如何和oracle数据库连接?
- 急啊,有答案马上结帖
- 有人碰过这个错误吗?
- fckeditor2.6 在ascx中怎么就不显示呢?点一个按钮就能出来?
- 更新了那些配置文件需要重启IIS
<head>
<script language="C#" runat="server">
public void Page_Load(Object sender, EventArgs e)
{ if (!this.IsStartupScriptRegistered("Startup"))
{
// Form the script to be registered at client side.
String scriptString = "<script language=JavaScript> function DoClick() {";
scriptString += "showMessage2.innerHTML='<h4>Welcome to Microsoft .NET!</h4>'}";
scriptString += "function Page_Load(){ showMessage1.innerHTML=";
scriptString += "'<h4>RegisterStartupScript Example</h4>'}<";
scriptString += "/";
scriptString += "script>";
this.RegisterStartupScript("Startup", scriptString);
}
}
</script>
</head>
<body topmargin="20" leftmargin="10" onload="Page_Load()">
<form id="myForm" runat="server">
<span id="showMessage1"></span>
<br>
<input type="button" value="ClickMe" onclick="DoClick()">
<br>
<span id="showMessage2"></span>
</form>
</body>
</html>
2楼和3楼基本就是我们动态加载js的方法,你可以是一段段脚本和可以引用js路径。
clientscript或scriptmanager里面有一些方法对操纵js提供了方便
就像UpdatePanle内动态加载User Control, User Control自己又有些上面这样的JavaScript代码段时, 这些JavaScript是不会被绘制到UpdatePanel内的。如果一开始User Control就呆在UpdatePanel内倒是没问题。
function showMsg(msg) {
alert(msg);
}
</script>
<asp:Button ID="Button1" runat="server" Text="用户控件内的" OnClientClick="showMsg(this.value);" />
Default.aspx内有个UpdatePanel,里面有个Button,点击后动态加载这个用户控件到UpdatePanel内, 但这时你会发现用户控件内的JavaScript不听话了.
//Default.aspx<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="UpdatePanle内的"
onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
//Default.aspx.cs
protected void Button1_Click(object sender, EventArgs e)
{
if (UpdatePanel1.ContentTemplateContainer.FindControl("UserCtrlID") == null)
{
Control ctrl = Page.LoadControl("WebUserControl.ascx");
ctrl.ID = "UserCtrlID";
UpdatePanel1.ContentTemplateContainer.Controls.Add(ctrl);
}
}WHY? 如果这个用户控件不是动态加载时没问题. WHY?
我用的不是AJAX我用的是普通的JS!我感觉AJAX 还是有一些不如意思的方法,比如他的刷新技术,只是在服务器端进行没有更新的设置操作,实际他还是更新了整个页面,不但没有带来速度的提高,而且还加重了服务器端的负担。
其实没有什么“.net调用javascript”,它们是“阴阳两界”,当浏览器提交http请求到服务器端,服务器端执行.net程序,然后当服务器端处理完、已经释放(杀死)了页面对象,html才达到遥远的客户端浏览器上,客户端浏览器上于是在下载html的时候执行内部的javascript代码。asp.net顶多能做的只是输出一些javascript,嵌入html。既然你在这些个功能的地方需要手动生成javascript,那么毫无疑问地,你应该以学会javascript为asp.net开发的基础。不熟悉javascript(以及操纵dhtml对象的属性和事件)就等于不熟悉asp.net开发。我从来不说“asp.net调用javascript”,这很含混空洞得容易让初学者误以为是什么灵丹妙药。asp.net没有本事调用javascript,我们只有根据那个简单的http通讯时序的原理,知道asp.net只能输出html+javascript到客户端。要想写出很好的web界面交互设计,你就只有了解javascript编程技术本身。
也就说在.net 运行完之后就封杀一切页面代码,不在让其它的代码执行对吗??
想要运行JavaScript 必须在页面开始的时候就写入JS代码。那“我从来不说“asp.net调用javascript”,这很含混空洞得容易让初学者误以为是什么灵丹妙药。”
这是什么意思啊!我有点晕。麻烦您在解释一下!
/// <summary>
/// 脚本宿主基类
/// </summary>
public class ScriptHost
:
//IOleServiceProvider,
IActiveScriptSite,
IActiveScriptSiteWindow
{
我写了个 js 引擎的宿主, 在 winform 程序里用 js 作脚本用微软 js 引擎需要一个宿主, 就是实现 IActiveScriptSite 的, IE 就是一个 js 宿主
IE 这个宿主向脚本暴露了 DOM , BOM 对象模型, 并且提供了象 alert 这样的便利函数,使得可以用 js 可以操作 html 等.js 不止是用于浏览器和网页的.
我前两天回家了,今天才回来!
我的想法是只要是谁激发这个事件就调用哪个客户端程序不可以吗?
还有对AJAX访问静态ASPX页还有一些不太了解。