新手请教:继承母版的页面如何调用javascript函数。

hudingchen 2007-07-05 09:49:27
我想通过javascript做一些客户端校验,代码如下:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="tt201010.aspx.cs" Inherits="tt201010" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script language="javascript" type="text/javascript">
function Test()
{
alert("aaaa");
}
</script>
<table style="width: 425px; height: 267px">
<tr>
<td style="height: 26px;" colspan="2">
<asp:TextBox ID="txtDevelopName" runat="server" OnTextChanged="Test()"></asp:TextBox></td>
</tr>
</table>
</asp:Content>
我想在OnTextChanged事件调用Test(),上面代码提示有错误,说Test()方法没定义,应该怎么写?
...全文
424 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hudingchen 2007-07-05
  • 打赏
  • 举报
回复
感谢大家的回帖~~
godgreat 2007-07-05
  • 打赏
  • 举报
回复
调JS文件
ouyang76cn 2007-07-05
  • 打赏
  • 举报
回复
你的出错是因为<asp:TextBox ID="txtDevelopName" runat="server" OnTextChanged="Test()"></asp:TextBox>
中的OnTextChanged用错了.

只要把它改为
<asp:TextBox ID="txtDevelopName" runat="server" onchange="Test()"></asp:TextBox>
就行了.

跟在母版中查找控件是两回事.
ouyang76cn 2007-07-05
  • 打赏
  • 举报
回复
那有这么复杂阿.
document.getElementById('<%=txtDevelopName.ClientID%>').onchange=....;
就行了.

hudingchen 2007-07-05
  • 打赏
  • 举报
回复
我查了一些资料,模板页的页面加载后,页面里原来的控件的 ID 不是以前的了,所以JS失效。我查看了一下我的页面,控件ID确实变了。
我加了下面这句后,我的问题就可以解决了:
<script language="javascript" type="text/javascript">
document.aspnetForm.ctl00$ContentPlaceHolder1$txtDevelopName.onchange = btnAdd_clicked;
</script>
母板中的Form的名字由form1变成了aspnetForm,继承母板页面的textbox的名字由txtDevelopName变成了ctl00$ContentPlaceHolder1$txtDevelopName。不知道我上面这么写好不好,期待高人解答。
to lishijie910123(): 你的方法,应该可行,我一会去试试。

sosohehe 2007-07-05
  • 打赏
  • 举报
回复
在page_load中加
if (!Page.IsPostBack)
{
txtDevelopName.Attributes.Add("onblur", "getFOBCost()");
}
dubuxunmei 2007-07-05
  • 打赏
  • 举报
回复
这样做每个不同的页面可以写不同的js文件。
我现在做的项目,就是这样做的
linekery 2007-07-05
  • 打赏
  • 举报
回复
我感觉应该可以呀。。。
写master里看看
ouyang76cn 2007-07-05
  • 打赏
  • 举报
回复
你写错了,应该是:
<asp:TextBox ID="txtDevelopName" runat="server" onchange="Test()"></asp:TextBox>

sosohehe 2007-07-05
  • 打赏
  • 举报
回复
<asp:TextBox ID="txtDevelopName" runat="server" OnTextChanged="Test()"></asp:TextBox>

runat="server" 我想在OnTextChanged事件调用Test(),上面代码提示有错误,说Test()方法没定义
不是母板也的问题 你这个OnTextChanged是服务器事件 而在cs文件中没有Test()方法 当然报错哦
dubuxunmei 2007-07-05
  • 打赏
  • 举报
回复
在倒数第一行上面添加js文件引用就可以
例如
.....
.....
<script type="text/javascript" language="javascript" src="../js/WMS7090_01.js">
</script>
</asp:Content>
lishijie910123 2007-07-05
  • 打赏
  • 举报
回复
在模板继承页中,没有head,body,form这些标签,这些标签在模板中,你把javascript大的方法全写在js文件中,在模板页中引用进来就可以了
jbraul128 2007-07-05
  • 打赏
  • 举报
回复
试试看将方法放到js文件中,页面引用js文件,再调用看看呢.没用过继承母板页面,不好说,帮你顶了只有.顺便问下,继承母板的页面就没有head,body,form这些标签了?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧