Нажатие кнопки WebUserControl

У меня есть 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 веб-контроллеров в панели), которые добавляются в панель управления. Но когда я нажимаю кнопку imgButtonMini, все элементы управления исчезают, и панель становится пустой. Также моя функция нажатия кнопки не работает.

Можете ли вы помочь мне, в чем проблема и как я могу запустить функцию кнопки? Спасибо

2 ответа

Итерируйте каждый элемент управления в главном элементе управления, например, у вас есть элемент управления product.ascx, а в вашем product_page.aspx у вас есть div, имеющий id="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 в каком-то проекте.

Читая ваш код, вы добавляете дочерние элементы управления только один раз на страницу. Их нужно добавлять каждый раз, когда вы отправляете сообщение, если вы хотите использовать этот подход, иначе элементы управления исчезнут.

Другие вопросы по тегам