测试笔记 » 日志 » 如何在aspx.vb中调用ascx
如何在aspx.vb中调用ascx
Noel 发表于 2007-09-06 16:59:24
<%@import namespace="system.data"%>
<%@import namespace="system.data.sqlclient"%>
<%@ register tagprefix="bookpub" tagname="getdsn" src="get_dsn.ascx"%>
<html>
<head>
<title>pagelet</title>
<script language=vb runat=server>
sub page_load(sender as object,e as eventargs)
if not page.ispostback then
dim objconn as sqlconnection
dim objcomm as sqldataadapter
dim objds as dataset
dim strsql,strdsn as string
strsql="select * from employ"
strdsn=pagelet1.get_dsn
objconn=new sqlconnection(strdsn)
objcomm=new sqldataadapter(strsql,objconn)
objds=new dataset()
objcomm.fill(objds,"employ")
datagrid1.datasource=objds.tables(0).defaultview
datagrid1.databind()
end if
end sub
</script>
</head>
<body >
<form runat="server">
<bookpub:getdsn id="pagelet1" bolsql=true runat=server/>
<asp:DataGrid ID="datagrid1" Runat=server/>
</form>
</body>
</html>
------------------------------------------------------------------
上面的代码我想改成codebehind窗体。并且在codebehind的窗体调用get_dsn.ascx文件,但是,不知道
<%@ register tagprefix="bookpub" tagname="getdsn" src="get_dsn.ascx"%>
如何在.aspx.vb中包含,它的格式是如何的?
答案一
<%@ register tagprefix="bookpub" tagname="getdsn" src="get_dsn.ascx"%>
不用动
方法:
在aspx.vb文件中class下
1、加一个类型为get_dsn的变量pagelet1
2、在if not page.ispostback then前加
pagelet1=(get_dsn)Me.FindControl("pagelet1")
后面就正常了
不过VB.net不熟
pagelet1=(get_dsn)Me.FindControl("pagelet1")
-------强制类型为get_dsn
答案二
Dim Mygetdsn As New getdsn
Mygetdsn = Me.FindControl("pagelet1")
步骤一: 把ascx控件拖入设计窗口,然后转入html模式,保留定义
如果你需要多个ascx的话,请全部拖入。
但是把相应的内容删除。(因为我们需要动态加载)
在需要填入控件的地方,放个容器,比如td,并设定在服务器端运行
如
<TD id="tdpan" runat=server></TD>
2:动态调用
UserControl myusercontrol = (UserControl) LoadControl ("../includes/pageNavigater.ascx") ;
Type myusertype = myusercontrol.GetType();
//下面是给ascx赋值
PropertyInfo myuserinfo1 = myusertype.GetProperty("RelatedDatagrid");//) .GetProperty("RelatedDatagrid");
myuserinfo1.SetValue(myusercontrol,gridhwcy ,null);
PropertyInfo mypassinfo = myusertype.GetProperty("torefresh");
mypassinfo.SetValue(myusercontrol,true,null );
PropertyInfo myuserdatasource = myusertype.GetProperty("RelatedDataSource");
myuserdatasource.SetValue(myusercontrol,dv,null);
tdpan.Controls.Clear();
tdpan.Controls.Add(myusercontrol);
