DataList里面有一个添加按钮,当点击这个按钮时,把相关数据添入数据库。相关代码如下:
    protected void Button1_Click(object sender, EventArgs e)
    {
        DateTime dt = DateTime.Now;
        if (Session["companyId"] == null || Session["name"] == null)
        {
            string str = "<Script>alert('对不起,请登陆后再参加活动!')</Script>";
            Page.RegisterClientScriptBlock("", str);
            Response.Redirect("~/MainPage.aspx");
        }
        else
        {
            string companyId = Session["companyId"].ToString();
            //  遍历DataList处理外键
            for (int i = 0; i < dataLGroupBuy.Items.Count; i++)
            {
                // 转码
                Label labGroupBuyName = dataLGroupBuy.Items[i].FindControl("GroupBuyNameLabel") as Label;
                groupBuyName = Convert.ToString(labGroupBuyName.Text);
     //此处获敢的数据不是按钮点击时所对应的数据,一直是固定的某一个,不知道为什么???
       }            DataTable dataTable = groupBuyService.GetGroupBuyByName(groupBuyName);
            string groupBuyId = Convert.ToString(dataTable.Rows[0][0]);
            int ret = groupBuySwapService.GetgbSwapBygbId(groupBuyId, companyId);
            groupBuySwap.GroupBuySwapId = "GBS" + string.Format("{0:yyyyMMddHHmmssffff}", dt);
            groupBuySwap.GroupBuySwapTime = DateTime.Now;
            groupBuySwap.GroupBuySwapIsBuy = "否";
            if (ret == 0)
            {
                groupBuySwap.GroupBuySwapNumber = 1;
            }
            else
            {
                groupBuySwap.GroupBuySwapNumber = ret + 1;
            }
            groupBuySwap.CompanyId = companyId;
            groupBuySwap.GroupBuyId = groupBuyId;
            groupBuySwap.userId = Session["name"].ToString();
            if (groupBuyService.AddGroupBuySwap(groupBuySwap) > 0)
            {
                string str = "<Script>alert('成功加入团购!')</Script>";
                Page.RegisterClientScriptBlock("", str);
            }
        }
    }
请教各们啦!谢谢!

解决方案 »

  1.   

    你是不是在Page_Load中绑定数据而没有使用if(!this.IsPostBack) ?
      

  2.   

    我在首次加载的时候用DataList绑定了全部数据,然后在DataList里面有一个添加按钮,当点击这个按钮时添加相应的数据进数据库,但是这个FindControl获取的不是我DataList里面某一按钮相对应的那个显示值。
      

  3.   

    绑定前加上
    if(!this.IsPostBack) 
      

  4.   

    绑定前加上
    if(!this.IsPostBack) 
      

  5.   

    有加啊!
     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SetDataBind();
            }
        }
      

  6.   

     //  分页绑定
        void SetDataBind()
        {
            ANPBYPage.RecordCount = groupBuyService.GetGroupBuyPageCount();   // 设定数据库记录总行数
            ANPBYPage.CustomInfoHTML = "当前是" + (ANPBYPage.CurrentPageIndex) + "页,一共有" + ANPBYPage.PageCount + "页";
            dataLGroupBuy.DataSource = groupBuyService.GetGroupBuy(ANPBYPage.PageSize, ANPBYPage.CurrentPageIndex);
            dataLGroupBuy.DataBind();
        }这些都没有问题,现在就是FindControl获取的时候有问题!
      

  7.   


    现在才看明白,这是个label,不是textbox,你添加成功后需要重新绑定一下datalist
      

  8.   


    兄弟,我现在是在添加的时候就出问题了,Lable拿出来的值不是我按钮所对应的那个值!
      

  9.   

    我想是去,dataList控件它有个事件,
       那可以得到