前段时间做了这样的一件事,把一个上传的内容放在了MultiPage控件里,再加上一个TabStrip,做了一个简单的在客户端可以“动态显示”不同页面的方法,这样做的好处是不必上传文件到服务器,而可以修改及很多的数据。

这里的导航是用TabStrip自动添加的,而现在又有一个麻烦的问题:就是要手动的添加一个导航:Back and Next!
简单的想法:找到MultiPage在IE里的ID,然后找它的index,然后修改这个值!
说的是很简单,然而做起来没那么容易:
首先,用JS找它的ID,而这个ID是动态生成的,因此必须在服务器上生成这个ID然后再来处理!
其次,这个控件不像HTML元素,它的很多属性与方法都不是透明的,你不知道它有哪些属性事方法可用!
最后,不好调试!必须先用在后台生成脚本再来写脚本调试。还好,MS的J#测试器在这里给了我很大的帮助。
这里的关键还是在MS的网站上找关于这个控件的客户端信息:你可以从这里找到这些相关的信息:
http://msdn.microsoft.com/workshop/webcontrols/behaviors/library/multipage/multipage_ovw.asp?frame=true
它给出了这些控件在客户端的手动代码编写方法,因此我们可以很好和自己写些简单的“控件”来管理类似MultiPage控件。
于是我简单的做了一下,先写了两段用于控制PAGE的JS代码,然后为BUTTON添加属性。
当然,最后的解决方法是比较完美的。
//
by Wu.Country
//
Last modify date: 2006-4-4
//
use for asp.net controls to manange the multipage selected index
function
PrePage(i_objSender,i_objPage,i_objTab,i_objEnable)
{
var
m_tab
=
eval(
"
document.all.
"
+
i_objTab);
var
m_page
=
eval(
"
document.all.
"
+
i_objPage);
var
m_sender
=
eval(
"
document.all.
"
+
i_objSender);
var
m_enable
=
eval(
"
document.all.
"
+
i_objEnable);

if
(m_page.selectedIndex
>
0
)
{
m_page.selectedIndex
--
;
m_tab.selectedIndex
--
;
}
if
(m_page.selectedIndex
==
0
)
{
m_sender.disabled
=
true
;

}
else
{
m_enable.disabled
=
false
;
}
event.cancelBubble
=
true
;
return
false
;
}
function
NextPage(i_objSender,i_objPage,i_objTab,i_objEnable)
{
var
m_tab
=
eval(
"
document.all.
"
+
i_objTab);
var
m_page
=
eval(
"
document.all.
"
+
i_objPage);
var
m_sender
=
eval(
"
document.all.
"
+
i_objSender);
var
m_enable
=
eval(
"
document.all.
"
+
i_objEnable);
m_enable.enable
=
true
;

if
(m_page.selectedIndex
<
m_page.numPages
-
1
)
{
m_page.selectedIndex
++
;
m_tab.selectedIndex
++
;
}
if
(m_page.selectedIndex
==
m_page.numPages
-
1
)
{
m_sender.disabled
=
true
;

}
else
{
m_enable.disabled
=
false
;
}
event.cancelBubble
=
true
;
return
false
;
}
private
void
Button4_PreRender(object sender, System.EventArgs e)

{
if
(
!
IsPostBack)

{
Button m_next
=
sender as Button;
string m_senderID
=
m_next.ClientID;
string m_pageID
=
this
.MultiPage1.ClientID;
string m_tabID
=
this
.TabStrip1.ClientID;
string m_enableID
=
this
.Button_back.ClientID;
m_next.Attributes.Add(
"
onclick
"
,
"
return NextPage('
"
+
m_senderID
+
"
','
"
+
m_pageID
+
"
','
"
+
m_tabID
+
"
','
"
+
m_enableID
+
"
')
"
);
}
}