0

我有一个 webusercontrol ( MiniUrunControl.ascx ),在这个 webusercontrol 中我添加了一个按钮,按钮点击功能是 imgButtonMini_Click。

protected void imgButtonMini_Click(object sender, ImageClickEventArgs e)
{
    DataTable _tablo = (DataTable)Session["KULLANICISEPETI"];
    foreach (DataRow _row in _tablo.Rows)
    {
        if (_row["urunid"].ToString() == lbUrunID.Text)
        {
            _tablo.Rows.Remove(_row);
            Session["KULLANICISEPETI"] = _tablo;
            break;
        }
    }

    this.Page.GetType().InvokeMember("ShowSepetBilgisi",
        System.Reflection.BindingFlags.InvokeMethod, null, this.Page, new object[] { });

}

现在,我在 Default.aspx 和 Default.aspx CodeBehind 中添加一个面板控件,如下所示;

protected void Page_Load(object sender, EventArgs e)
{
  if(ispostback==false) ShowSepetBilgisi();
}

public void ShowSepetBilgisi()
{ 
    DataTable _tablo = (DataTable)Session["KULLANICISEPETI"];

    if (_tablo == null) return;

    pnlMiniUrunler.Controls.Clear();

    foreach (DataRow _row in _tablo.Rows)
    {
        MiniUrunControl _mini = (MiniUrunControl)LoadControl("MiniUrunControl.ascx");
        _mini.SetInfo(_row["urunid"].ToString(), _row["adet"].ToString());
        pnlMiniUrunler.Controls.Add(_mini);
    }
}

好的,当运行网站时,我看到我的所有产品(面板中的 10 个 webusercontrols)都添加到面板控件中。但是当我单击 imgButtonMini button 时,所有控件都消失了,面板为空。我的按钮单击功能也不起作用。

您能帮我解决问题吗?如何运行按钮功能?谢谢

4

2 回答 2

1

迭代主控件中的每个控件,例如你有 product.ascx 控件,在你的 product_page.aspx 中有一个 divid="pcdiv"runat="server". 现在在 C# 中以这种方式迭代:

foreach(control item in (product)div.controls.oftype(product)){
  if(item.value == 'true') {
    Response.write("Got it"); break;//incase only 1 object to iterate
  }
}

请检查控制转换,因为我没有测试此代码,但我在某些项目中使用了这个 1。

于 2012-07-29T13:44:05.257 回答
0

阅读您的代码,您只需将子控件添加到页面一次。如果您想使用这种方法,每次回发时也需要添加它们,否则控件将消失。

于 2012-02-07T12:18:05.467 回答