【发布时间】:2018-01-31 11:17:04
【问题描述】:
我有一个usercontrol。在usercontrol里面我有一个datalist和sqldatasource。Sqldatasource需要一个参数来对datalist进行数据绑定。Usercontrol通过这种方式获取一个参数,
private string _urunIDparam;
public string urunIDparam
{
get { return _urunIDparam; }
set {_urunIDparam = value; }
}
然后通过这种方式将这个参数添加到usercontrol的onprerender中的sqldatasource中,
protected override void OnPreRender(EventArgs e)
{
SqlDataSourceHareketler.SelectParameters["urunID"].DefaultValue = urunIDparam;
DataListHareketAna.DataBind();
base.OnPreRender(e);
}
而 usercontrols 参数是从一个像这样放置 aspx 页面的按钮给出的,
protected void Button1_Click(object sender, EventArgs e)
{
MyUserControl1.urunIDPARAM = urunID;
}
并且按钮和用户控件被放置在像这样的 aspx 页面内的更新面板中,
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<uc2:MyUserControl ID="MyUserControl1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
</ContentTemplate>
</asp:UpdatePanel>
当我点击 datalist 中的按钮时,我的用户控件消失了(datalist 丢失了它的项目)。
【问题讨论】:
标签: asp.net events user-controls