C# 将单元格转换为选中复选框的文本框

C# 将单元格转换为选中复选框的文本框,c#,asp.net,mysql,C#,Asp.net,Mysql,我将mysql和asp.net与c#一起使用。我有一个网格视图,它将显示动态选择的表数据。我能够显示所选表格的数据。在第一列中,我在网格视图外添加了一个复选框和一个按钮。当用户选中复选框并单击按钮时,所选行必须变成文本框。我可以找到选择的复选框,但无法将单元格转换为文本框。这是我的密码: int n = GridView1.HeaderRow.Cells.Count; for( int i=0; i < GridView1.Rows.Count;i++) {

我将mysql和asp.net与c#一起使用。我有一个网格视图,它将显示动态选择的表数据。我能够显示所选表格的数据。在第一列中,我在网格视图外添加了一个复选框和一个按钮。当用户选中复选框并单击按钮时,所选行必须变成文本框。我可以找到选择的复选框,但无法将单元格转换为文本框。这是我的密码:

     int n = GridView1.HeaderRow.Cells.Count;

    for( int i=0; i < GridView1.Rows.Count;i++)
    {

        GridViewRow row = GridView1.Rows[i];
        bool isChecked = ((CheckBox)row.FindControl("CheckBox1")).Checked;

        {
            for( int j=0;j<n;j++)
            {
                TextBox txt = ((TextBox)GridView1.Rows[i].Cells[j]).Text;

            }
        }
    }
int n=GridView1.HeaderRow.Cells.Count;
for(int i=0;i对于(int j=0;j您的方法调用正在查找单元格。文本框是单元格中包含的控件。请尝试以下操作:

TextBox txt = ((TextBox) GridView1.Rows[i].Cells[j].FindControl("textbox name")).Text;
FindControl
方法已记录在案

另外,请接受@Bartdude关于使用可编辑网格视图的建议。如果其中一个视图至少能像您尝试手动滚动的视图一样工作,那么花时间学习如何使用它是值得的。

试试这个

您可以根据自己动手使用C#删除一行或几行

概念是,您应该创建一个文本框,将单元格文本分配给该文本框,然后将新创建的文本框添加到特定行的网格单元格的子控件中

如果您发现此解决方案有用,请标记它

    bool isChecked = ((CheckBox)row.FindControl("CheckBox1")).Checked;
    if(isChecked)
    {
        for( int j=0;j<n;j++)
        {
            TextBox tbForCell = new TextBox();
            tbForCell.Text = GridView1.Rows[i].Cells[j].Text;
            GridView1.Rows[i].Cells[j].Text = "";
            GridView1.Rows[i].Cells[j].Controls.Add(tbForCell);
        }
    }
bool isChecked=((复选框)row.FindControl(“复选框1”))。选中;
如果(已检查)
{

对于(int j=0;jt)来说,有一些内置功能可以使gridview数据可编辑;我建议您在重新设计控制盘之前对此进行研究。下面是.NET 2.0中的一个示例,但我认为在最新版本中没有太多更改:TextBox txt=((TextBox)GridView1.Rows[I].Cells[j]).Text;???您如何尝试将字符串单元格文本转换为文本框类型的控件?????警告说明了一切。请上传aspx页面。问题是我使用的是mysql,并且我正在将表动态绑定到我的网格。也就是说,我有一个下拉列表,用户从中选择表。因此,我将不知道al的列名l、 我必须动态地做每件事。这就是为什么我不能使用编辑-删除按钮。我试图在aspx中添加具有以下属性的编辑按钮
我为OnRowEditing=“grid\u edit
编写了一个函数。在我编写的函数中:
GridView1.EditIndex=e.NewEditIndex;fill\u grid()
当我运行它时,它会显示编辑按钮,但当我单击它时,它碰巧出现了nthg。是的,我会尝试它。但是我不知道确切的列名,因为我根据下拉列表中的选定项动态显示网格。您是否确实在其中有文本框?如果没有,并且它只是一个普通单元格,我想您可以使用
字符串txt=((TableCell)GridView1.Rows[i].Cells[j]).Text;
来获取单元格内容。但是如果其中确实有文本框,那么这将不起作用,并且我无法从发布的代码中判断是否有文本框。
        for( int j=1;j<n;j++)