在网格视图中的rowcommand事件中将TextBox值转换为整数

本文关键字:TextBox 转换 整数 事件 网格 视图 rowcommand | 更新日期: 2023-09-27 18:21:43

我正在尝试将TextBox中的Value转换为gridviewRowCommand中的int。

else if (e.CommandName == "UpdateRow")
{
    int rowIndex = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;
    int TimeSheetId = Convert.ToInt32(e.CommandArgument);
    int Sunday = Convert.ToInt32((TextBox)gvEmployeeTimeSheet.Rows[rowIndex].FindControl("txtSunday"));// Error here
    int Monday = Convert.ToInt32((TextBox)gvEmployeeTimeSheet.Rows[rowIndex].FindControl("txtMonday"));// Error her
}

我得到以下错误:

Unable to cast object of type 'System.Web.UI.WebControls.TextBox' to type 'System.IConvertible'.

在网格视图中的rowcommand事件中将TextBox值转换为整数

正如错误所说,您正试图将textbox强制转换为整数。这是不可能的。所以应该是这样的-

int Sunday = Convert.ToInt32((TextBox)(gvEmployeeTimeSheet.Rows[rowIndex].FindControl("txtSunday")).Text);
int Monday = Convert.ToInt32((TextBox)(gvEmployeeTimeSheet.Rows[rowIndex].FindControl("txtMonday")).Text);

如果找到控件,然后试图将其强制转换为整数,则需要选择Textbox的Text属性并进行转换。

 int Sunday = Convert.ToInt32(((TextBox)gvEmployeeTimeSheet.Rows[rowIndex].FindControl("txtSunday")).Text);
 int Monday = Convert.ToInt32(((TextBox)gvEmployeeTimeSheet.Rows[rowIndex].FindControl("txtMonday")).Text);