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);
    }
}

OK Web サイトを実行すると、パネル コントロールに追加されたすべての製品 (パネルに 10 個の webusercontrols) が表示されます。しかし、 imgButtonMini ボタンをクリックすると、すべてのコントロールがなくなり、パネルが空になります。また、私のボタンクリック機能は機能しません。

何が問題なのか、ボタン機能を実行するにはどうすればよいですか? ありがとう

4

2 に答える 2

1

id="pcdiv"たとえば、product.ascx コントロールがあり、product_page.aspx にとを持つ div がある場合など、メイン コントロールの各コントロールを繰り返します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

コードを読むと、子コントロールがページに 1 回だけ追加されます。このアプローチを使用する場合は、ポストバックするたびに追加する必要があります。そうしないと、コントロールが消えます。

于 2012-02-07T12:18:05.467 に答える