我有一个显示3个ASP:gridview对象的ASPX应用程序。我已经从SQLite表中选择了某些列,以根据这些列中的值显示在每个gridview中。我遇到的问题是使用一个gridview。此gridview从表中拉出6列,并将其与2个ButtonFields和1个Templatefield控件一起显示在其中。其中一个按钮应该将文本框中的文本(由用户输入)插入到表中。然后,应用程序刷新gridview,插入的数据应显示在列中。
我正在使用以下内容将数据插入表中:
protected void gvApproved_RowCommand(object sender, GridViewCommandEventArgs e)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
GridViewRow row = gvApproved.Rows[rowIndex];
string name = row.Cells[0].Text;
string column = "";
string value = "";
switch (e.CommandName)
{
case "Close":
column = "closed";
value = "yes";
break;
case "Score":
column = "score";
value = row.Cells[8].Text;
break;
}
SQL_Helper.Update_Row(rowIndex, column, value, name);
Refresh_All_Grids();
}
更新行命令,以防有人好奇:
public static void Update_Row(int rowIndex, string updateField, string updateString, string updateName)
{
string query = "UPDATE applications SET '" + updateField + "' = '" + updateString + "' WHERE name = '" + updateName + "';";
Query_Table(query);
}
当我将行value = row.Cells[8].Text;
设置为value = row.Cells[8].ToString()
时,它会将'System.Web.UI.WebControls.DataControlFieldCell'
插入到表中,因此我知道它正在从右列中拉出来,但是当我将其保留为上面所写的时候,它插入一个空字符串。是否无法从gridview文本框插入?如果是,我需要更改什么才能使其正常工作?
答案 0 :(得分:0)
我之前发布了我之前发布的答案,但随后更多地了解它我意识到你正在使用GridViewRow,而不是DataGridViewRow。您应该将问题更新为不包含有关DataGridView的任何内容。 GridViewRow.Cells [8]没有像我在下面的答案中提到的那样有价值。
我只是评论看看这个小建议是否修正了它,但我还没有50个代表。你必须使用Value而不仅仅是Cell本身。
这有用吗?
value = row.Cells[8].Value.ToString();