Click += new EventHandler事件的取值问题
现用户有一数据表格如下:
id   书名   价格   操作
1    A       10     选择
2    b       28     选择
3    c       39     选择
从库中选出如上表格中数据,点“选择”,出现填写订购信息输入框等,要求得到书的ID号,并和订购信息一并存入数据库中,单人操作时没有问题,可以得到ID,存储一切正常,但当两个人同时运行这个程序时,ID就总是取到最后点击book_Click的那个ID,比如A先进入book.aspx,并点击了ID为1的书,这时B也在另外一台机器上点击进入book.aspx,点击选择ID为2的BOOK,这时如果A填写完了订购信息,点击保存,存入库中的是ID为2的书,A用户应该选择的是ID=1,显然系统取的是最后一次点击book_click取到的值,为什么呢?请大侠赐教?代码如下:
  protected void fill_tb()
     {
         Table2.Rows.Clear(); TableRow tr; TableHeaderCell th; TableCell tc;
         #region 填充表头
         tr = new TableRow();
         th = new TableHeaderCell();
         th.Text = "ID";
         tr.Cells.Add(th);
         th = new TableHeaderCell();
         th.Text = "书名";
         tr.Cells.Add(th);
         th = new TableHeaderCell();
         th.Text = "价格";
         tr.Cells.Add(th);
         th = new TableHeaderCell();
         th.Text = "操作";
         tr.Cells.Add(th);
         Table2.Rows.Add(tr);
         #endregion       
         string sql ="select id,bookname,price from book ";
         DataSet dst = DBCommand.ExecuteDataSet(sql, "tab");
         int nums = dst.Tables[0].Rows.Count;
         for (int i = 0; i < nums; i++)
         {
             #region 数据行
             tr = new TableRow();
             tr.HorizontalAlign = HorizontalAlign.Center;
             tc = new TableCell();
             tc.Text = dst.Tables[0].Rows[i]["id"].ToString();
             tr.Cells.Add(tc);//
             tc = new TableCell();
             tc.Text = dst.Tables[0].Rows[i]["bookname"].ToString();
             tr.Cells.Add(tc);//作业项目
             tc = new TableCell();
             tc.Text = dst.Tables[0].Rows[i]["price"].ToString();
             tr.Cells.Add(tc);//责任人
             tc = new TableCell();
             LinkButton lkbtn = new LinkButton();
             lkbtn.ID = dst.Tables[0].Rows[i]["id"].ToString();
             lkbtn.Text = "操 作";
             lkbtn.Click += new EventHandler(book_Click);
             tc.Controls.Add(lkbtn);
             tr.Cells.Add(tc);
             Table2.Rows.Add(tr);
             #endregion
         }
         dst.Dispose();
     }   
protected void book_Click(object sender, EventArgs e)   //点击事件
     {
         LinkButton btn = sender as LinkButton;
         bookid=Convert.ToInt32(btn.ID.ToString());                
         Fill_db();//显示详单       
     }
------解决方案--------------------
bookid 不要设置为static静态变量