我想创建一个用于检索和过滤数据集的usercontrol。我遇到的问题是要填充的控件不在usercontrol中,而是在usercontrol所在的主页上。原因是每个页面上要填充的控件都不同。
如果我可以帮助解决以下简化问题,我可能会解决更大的问题:
<body>
<form id="form1" runat="server">
<div>
<uc1:uc1 ID="uc1" runat="server" />
<asp:Label ID="lbl" runat="server"></asp:Label>
</div>
</form>
</body>
我想要做的是通过单击usercontrol上的按钮在主页面上设置标签。我遇到的问题是用户控件回发发生在主页之后。
谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
我设法通过调用Parent.Page来解决它。我还实现了一个接口,以便我可以从用户控件中调用不同页面的方法。不确定它是否是一个好的解决方案,但它会:
interface IFilter
{
void SetLabel(string text);
}
public partial class uc : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_Click(object sender, EventArgs e)
{
((IFilter)Parent.Page).SetLabel("changed");
}
}
public partial class _Default : System.Web.UI.Page , IFilter
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
}
public void SetLabel(string text)
{
lbl.Text = text;
}
}