【问题标题】:Datalist placed inside a usercontrol放置在用户控件内的数据列表
【发布时间】: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


    【解决方案1】:

    听起来您可能需要围绕控件中的函数进行回发检查。我以前见过这个确切的问题,我认为这是我必须做的,但已经有一段时间了。

    if (!IsPostback) {
      //LoadData
    }
    

    【讨论】:

    • 感谢您的提示,但我已经尝试过 ispostback 但问题仍然存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多