我本意是想一个用户控件做商品列表,另一个用户控件做购物车,从列表中点击商品,就可以直接加入购物车,但先做这两个简单的都实现不了
用户控件1
public class WebUserControl_shopcart : System.Web.UI.UserControl
{
public static System.Web.UI.WebControls.TextBox tt1;
protected System.Web.UI.WebControls.Table ShopCart; private void Page_Load(object sender, System.EventArgs e)
{
//base.Controls[0].Text=(string)ViewState["txt_test"];


}用户控件2
public class WebUserControl_link : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.TextBox link; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
         }
多谢啦!

解决方案 »

  1.   

    你这么做的话,就把2个控件耦合在一起了,如果要松散耦合,应该这么做用户控件1public class WebUserControl_shopcart : System.Web.UI.UserControl
    {
    public static System.Web.UI.WebControls.TextBox tt1;
    protected System.Web.UI.WebControls.Table ShopCart; private void Page_Load(object sender, System.EventArgs e)
    {
    //....
    }

    public void AddItem(string s)
    {
    //....
    ShopCart.Add(s);
    }
    }用户控件2 public class ItemEventArgs : EventArgs 
    {
       string strItem;
       public ItemEventArgs(string item)
       {
    strItem = item;
       }    public string Item { get {return strItem;}}
    } public delegate void ItemSelect(object sender,ItemEventArgs); public class WebUserControl_link : System.Web.UI.UserControl
    {
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.TextBox link; public event ItemSelect SelectionChanged; private void Page_Load(object sender, System.EventArgs e)
    {

    } protected virtual void OnSelectionChanged(ItemEventArgs ia)
    {
    if (SelectionChanged != null)
    SelectionChanged(this, ia);
    } private void Button1_Clicked(object sender, System.EventArgs e)
    {
    OnSelectionChanged(new ItemEventArgs(SomeItemTextBoxOrLabel.Text));
    }
             }在aspx里, 作为控制器<cc:用户控件1 id="用户控件1" runat="server"/>
    <cc:用户控件2 id="用户控件2" runat="server" OnSelectionChanged="DoAdd" />
    private DoAdd(object sender, ItemEventArgs ia)
    {
       用户控件1.AddItem(ia.Item);
    }
      

  2.   

    ItemEventArgs是什么啊,google都勾不到
      

  3.   

    商品列表中添加一个事件,然后将选中的商品值保存到ItemEventArgs上面。然后页面的购物车添加事件响应。
    商品列表.Selected += new Handler(method);
    然后method里面执行购物车的添加事件
      

  4.   

    ItemEventArgs是一个应该你自己定义的EventArgs.
      

  5.   

    在SDK的示例中有一个和你一样的例子,用的是两个DATAGRID表,处理按钮列或模板列的事件。
    第一个DG正常帮定你的数据源,后一个帮定一个数列,数列印射到SESSION,然后就可以达到你说的效果,在确定储存的时候加入对你的数据源的操作就行了。
    具体的代码可以在SDK SERVER控件中的DATAGRID中找到。去看看吧
      

  6.   

    to banmuhuangci(待缘) ;
    给个连接好吗,这么告诉我还是找不到
      

  7.   

    http://www.cnblogs.com/gwazy/archive/2005/06/14/174443.html