从GridView数据单元访问文本框(ASP.NET)


      protected void GridView2_OnCommand(Object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Reply")
            {
                con = new System.Data.SqlClient.SqlConnection();
                con.ConnectionString = "Data Source=myconnectionstring; Integrated Security = true; Connect Timeout = 30; User Instance = True";
                con.Open();
                string div = "','";
                GridViewRow selectedRow = GridView2.Rows[Convert.ToInt32(e.CommandArgument)];
                SqlCommand cmd = new SqlCommand("INSERT INTO SellerResponse VALUES ('" +
                    //THIS LINE IS THE ISSUE
                Request.QueryString["ID"] + div + selectedRow.Cells[2].Text + div + DateTime.Now.ToString() + div + selectedRow.Cells[3].Text + ((System.Web.UI.WebControls.TextBox)(FindControl(selectedRow.Cells[1].UniqueID))).Text /*this is the cell that contains the textbox*/+ "');", con);
            }
        }

有什么想法如何实现这一点吗?

 protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                int index = Convert.ToInt32(e.CommandArgument);
                if (e.CommandName == "Reply")
                {
                   on = new System.Data.SqlClient.SqlConnection();
                   con.ConnectionString = "Data Source=myconnectionstring; Integrated Security = true; Connect Timeout = 30; User Instance = True";
                   con.Open();
                   string div = "','";
                   GridViewRow selectedRow = GridView2.Rows[Convert.ToInt32(e.CommandArgument)];
                   SqlCommand cmd = new SqlCommand("INSERT INTO SellerResponse VALUES ('" +
                   //THIS LINE IS THE ISSUE
                   Request.QueryString["ID"] + div + GridView2.Rows[index].Cells[2].Text + div + DateTime.Now.ToString() + div + GridView2.Rows[index].Cells[3].Text + ((System.Web.UI.WebControls.TextBox)(GridView2.Rows[index]Cells[1].FindControl("the name of the text box")).Text /*this is the cell that contains the textbox*/+ "');", con);
                }
            }

            catch (Exception ee)
            {
                string message = ee.Message;
            }
        }

注:1- in aspx: CommandArgument='<%#((GridViewRow)Container).RowIndex%>'

   2- use RowCommand event for the grid view.

最新更新