无法将类型“字符串”隐式转换为“System.Web.UI.WebControls.TextBox”

本文关键字:字符串 Web System TextBox WebControls UI 类型 转换 | 更新日期: 2023-09-27 18:07:07

    int userid = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());

TextBox textname=          ((System.Web.UI.WebControls.TextBox(GridView1.Rows[e.RowIndex].Cells[1].Controls[1])).Text;
            TextBox textdob = (((System.Web.UI.WebControls.TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[1]))).Text;
            TextBox textrole = ((System.Web.UI.WebControls.ListControl)(((System.Web.UI.WebControls.DropDownList)(((System.Web.UI.Control)(GridView1.Rows[e.RowIndex].Cells[3].Controls[1])))))).SelectedIndex.ToString();

收到该错误文本框文本名称 文本框文本 文本框文本

无法将类型“字符串”隐式转换为“System.Web.UI.WebControls.TextBox”

试试

textname.Text = ((System.Web.UI.WebControls.ListControl)(((System.Web.UI.WebControls.DropDownList)(((System.Web.UI.Control)(GridView1.Rows[e.RowIndex].Cells[3].Controls[1])))))).SelectedIndex.ToString();

不能将字符串添加到文本框本身

看看下面的代码行

TextBox textname = ((System.Web.UI.WebControls.TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[1])).Text;

((System.Web.UI.WebControls.TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[1])).Text是一个字符串,但你把它分配给textname,这是一个TextBox,所以这就是你得到错误的原因。

将上面的代码更改为下面

TextBox textname = (System.Web.UI.WebControls.TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[1]);

然后你可以通过这种方式获取文本

string name = txtname.Text;

同样的事情适用于第二个文本框

TextBox textdob = (System.Web.UI.WebControls.TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[1]);
// get the dob
string dbo = textdob.Text;

对于下拉列表,您必须将其分配给DropDownList而不是TextBox

DropDownList ddlRole = (System.Web.UI.WebControls.DropDownList)(GridView1.Rows[e.RowIndex].Cells[3].Controls[1]);
// get the selected index
int selectedRoleIndex = ddlRole.SelectedIndex;