获取gridview单元格值时出错:输入字符串格式不正确

时间:2014-02-25 07:47:58

标签: c# gridview

我有这个代码 当我点击gridview上的这个按钮时,它会删除我单击其后面的删除按钮的行:

 private void imgbtnDelete_Click(object sender, ImageClickEventArgs e)     
 {
        //Get the button that raised the event
        ImageButton btn = (ImageButton)sender;

        //Get the row that contains this button
        GridViewRow gvr = (GridViewRow)btn.NamingContainer;

        //Get rowindex
        int rowindex = gvr.RowIndex;
        int DrillItemId = Convert.ToInt32(grd1.Rows[rowindex].Cells[0].Text.ToString());
        SPContext.Current.Web.Lists["Drill Items"].Items.DeleteItemById(DrillItemId);

        grd1.DataSource = GetData();
        grd1.DataBind();
    }

当我部署我的项目时,它在这一行给出了这个错误: 有错误的行:

int DrillItemId = Convert.ToInt32(grd1.Rows[rowindex].Cells[0].Text.ToString());

错误:

input string was not in a correct format.

请帮帮我

2 个答案:

答案 0 :(得分:2)

  

请帮帮我

嗯,错误是:

  

输入字符串的格式不正确。

,该行是:

  

int DrillItemId = Convert.ToInt32(grd1.Rows [rowindex] .Cells [0] .Text.ToString());

我们来看看。我猜你Cells[0].Text中的任何内容都不是数字。或者至少不是Convert.ToInt32会接受的形式。我不会在这里讨论可能的原因 - 有很多,取决于你如何使用它。

你能做基线调试并检查一下 - 啊 - 修复它吗?它只比编写一个标题更复杂,不会说“你好我需要帮助”,程序员通常会在他们的职业生涯中很早就学习......调试。

答案 1 :(得分:1)

以下一行

int DrillItemId = Convert.ToInt32(grd1.Rows[rowindex].Cells[0].Text.ToString());

grd1.Rows[rowindex].Cells[0].Text的实际值可能包含字母字符或空格,因此您收到此错误。

Convert.ToInt32(stringVal)实际上将数字的指定字符串表示形式转换为等效的32位有符号整数,但参数应该是仅包含数字的字符串。