我有两个用户控件,放在一个页面上 index.aspx 。
现在想在一个用户控件的button的click事件中调用另外一个用户控件的Gridview的bind方法。
不知道如何写。另外,我的两个用户控件分别在两个updatepanel中,希望在第一个用户控件中调用了第二个用户控件中的bindGrid()方法后能刷新第二个用户控件!!
现在想在一个用户控件的button的click事件中调用另外一个用户控件的Gridview的bind方法。
不知道如何写。另外,我的两个用户控件分别在两个updatepanel中,希望在第一个用户控件中调用了第二个用户控件中的bindGrid()方法后能刷新第二个用户控件!!
public void Exec()
{
this.Label1.Text = "123";
}
</script>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
WebUserControl2.ascx
<%@ Control Language="C#" ClassName="WebUserControl2" %>
<%@ Reference Control="~/WebUserControl1.ascx" %>
<script runat="server"> protected void Button1_Click(object sender, EventArgs e)
{
var ctl = this.Page.FindControl("WebUserControl1") as WebUserControl1;
ctl.Exec();
}
</script>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />default.aspx<%@ Page Language="C#" %><%@ Register src="WebUserControl1.ascx" tagname="WebUserControl1" tagprefix="uc1" %>
<%@ Register src="WebUserControl2.ascx" tagname="WebUserControl2" tagprefix="uc2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"></script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:WebUserControl1 ID="WebUserControl1" runat="server" />
<uc2:WebUserControl2 ID="WebUserControl2" runat="server" />
</div>
</form>
</body>
</html>
这样了好像自己试验吧不用 FindControl ,自己反射
或循环取子级别判断是否是需要的 用户控件也可我个人不建议这么做,耦合性太狠了
var ctl = this.Page.FindControl("WebUserControl1") as WebUserControl1;
这句话提示 WebUserControl1 找不到类型名或命名空间(是否缺少using指令或程序集引用)
怎么回事啊 ??
最后,第二个控件中当执行“查询”方法时,执行 MyUpdatePanel.Update() 这类方法。什么界面改变了就执行它对应的 UpdatePanel的Update方法,跟页面上没有没有更多的控件没有关系。
<%@ Reference Control="~/WebUserControl1.ascx" %>虽然可以这样,不过我还是不建议你这么开放程序