如何访问ASCX ?

D_DD 2008-01-26 12:43:10
两个ASCX A.ascx和B.ascx a.ascx有一个方法 P ,在B.ascx如何去调用A.ascx的方法P?
谢谢!!
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
D_DD 2008-01-26
  • 打赏
  • 举报
回复
恩 在ASPX面是可以,但我要在B.ASCX控件用调用这个P.
a_1.P()在B.ascx这样不行
LikeCode 2008-01-26
  • 打赏
  • 举报
回复
将这个方法定义为public级,就可以直接调用了.
设a.ascx在页面上的的ID为a_1
那么调用就象a_1.P()
chuxue1342 2008-01-26
  • 打赏
  • 举报
回复
飘过!!
LikeCode 2008-01-26
  • 打赏
  • 举报
回复
反射吧.
在引用页面调用用户控件的方法,在用户控件调用引用页面的方法,就用户控件调用了另一个用户控件的方法了.
以下为DEMO代码
WC1.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WC1.ascx.cs" Inherits="WC1" %>
the label1(red):<asp:Label ID="Label1" runat="server" ForeColor="Red"></asp:Label>

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class WC1 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{

}


public void SetLable(string val)
{
Label1.Text = val;
}
}


WC2.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WC2.ascx.cs" Inherits="WC2" %>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="invoke the function of WC1" />
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Reflection;

public partial class WC2 : System.Web.UI.UserControl
{

protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
System.Web.UI.Page page = this.Page;
Type pageType = page.GetType();
MethodInfo methodInfo = pageType.GetMethod("SetWcLabel");
object[] paras = new object[] { "from WC2" };
methodInfo.Invoke(page, paras);
}
}


引用页面
default.aspx
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Src="WC1.ascx" TagName="WC1" TagPrefix="uc1" %>
<%@ Register Src="WC2.ascx" TagName="WC2" TagPrefix="uc2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:WC1 id="WC1_1" runat="server">
</uc1:WC1><br />
<uc2:WC2 ID="WC2_1" runat="server" />
 </div>
</form>
</body>
</html>

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

public void SetWcLabel(string val)
{
WC1_1.SetLable(val);
}
}
一品梅 2008-01-26
  • 打赏
  • 举报
回复
先引用主页面再用a_1.p
多个中间环节,成功后请帖解决方案及代码,谢谢.

62,046

社区成员

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

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

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

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