关于摸板页的问题[非常急]
问题是这样。我自己定义了一个pagebase继承自page的页基类。然后用这个基类的loadTemplate()来调用之前设计好的用户控件:该控件设置好了页面的框架:
<%@ Register TagPrefix="uc1" TagName="Login" Src="Login.ascx" %>
<%@ Register TagPrefix="uc1" TagName="Head" Src="Head.ascx" %>
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="TemplatePage.ascx.vb" Inherits="TemplateTest.TemplatePage" debug=true %>
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title runat="server" id="ctrTitle">TemplatePage</title>
<link id="ctrstyleSheet" href="" type="text/css" rel="Stylesheet" runat="server" />
<script language="javascript" src="../test.js"></script>
</HEAD>
<body>
<form id="mainForm" method="post" runat="server">
<table class="main" id="mainTable" height="100%" cellSpacing="0" cellPadding="0" border="0">
<tr>
<td class="logo" vAlign="top" align="left"></td>
<td class="header" colSpan="2" vAlign="top"><uc1:head id="xHead" runat="server" DESIGNTIMEDRAGDROP="291"></uc1:head></td>
</tr>
<tr>
<td class="menu">sss</td>
<td class="main">
<div class="main" id="ctrMain" runat="server"><FONT face="宋体"></FONT></div>
</td>
<td class="menu">[Right Column]
</td>
</tr>
<tr>
<td class="footer" colSpan="3">[Footer]
</td>
</tr>
</table>
</form>
</body>
</HTML>
这样最后其他继承自PageBase的页面可以得到完成的框架。
确实这样效果也出来了
但是发现了一个致命的问题:
因为Form表单存在于用户控件里而非主页面,这样对于需要postback的情况(就是主页面上要用到_doPostBack(e1,e2)这个方法)时请看:
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["_ctl0:mainForm"];
}
else {
// 这里document._ctl0:mainForm的form引用我发现是空,也就是取不到用户控件里的 form 的引用
theform = document._ctl0:mainForm;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
大家看看有什么好办法可以解决啊!