我有一个usercontrol.Inside 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参数是从asx页面放置的按钮给出的,
protected void Button1_Click(object sender, EventArgs e)
{
MyUserControl1.urunIDPARAM = urunID;
}
按钮和usercontrol放在这样的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中的按钮时,我的usercontrol消失了(datalist丢失了它的项目)。
答案 0 :(得分:1)
听起来您可能需要对控件内的功能进行回发检查。我以前看过这个问题,我认为这就是我必须做的事情,但已经有一段时间了。
if (!IsPostback) {
//LoadData
}